简单使用nHibernate,新手练习用。
这是在网上看的别人得一些文章的小总结了。
创建测试数据表。
CREATE TABLE users (
LogonID nvarchar(20) NOT NULL default '0',
Name nvarchar(40) default NULL,
Password nvarchar(20) default NULL,
EmailAddress nvarchar(40) default NULL,
LastLogon datetime default NULL
)
go
创建一个web项目,然后添加一个类库项目YangTest.Entity。
映射数据表。我用的是MyGeneration的自动生成工具,具体下载google一下吧。
再此要强调一点,网上很多文章在讲到手动创建试题类的时候,都没有给属性加Virtual关键字,这时必须的,小错误容易被人忽视啊。
public class user
{
private string id;
public virtual string LogOnID
{
get { return id; }
set { id = value; }
}
private string _name;
public virtual string name
{
get { return _name; }
set { _name = value; }
}
private string _Password;
public virtual string Password
{
get { return _Password; }
set { _Password = value; }
}
private string _Emailadress;
public virtual string Emailadress
{
get { return _Emailadress; }
set { _Emailadress = value; }
}
private DateTime? _Lastlogon;
public virtual DateTime? Lastlogon
{
get { return _Lastlogon; }
set { _Lastlogon = value; }
}
映射文件:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="YangTest.Entity.user,YangTest.Entity" table="users" lazy="true">
<id name="LogOnID" column="LogOnID" type="String">
<generator class="assigned"/>
</id>
<property column="name" type="String" name="name" length="40" />
<property column="Password" type="String" name="Password" length="20" />
<property column="Emailadress" type="String" name="Emailadress" length="40" />
<property column="Lastlogon" type="DateTime" name="Lastlogon" />
</class>
</hibernate-mapping>
现在我们才真正开始体验Nhibernate的便捷之处。
编辑我们的web项目的web.config文件,添加nhibernate配置
<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<nhibernate>
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"
/>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"
/>
<add
key="hibernate.connection.connection_string"
value="Server=192.168.0.106;database=YangTest;uid=sa;pwd=xinwei"
/>
<add
key="hibernate.connection.isolation"
value="ReadCommitted"
/>
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"
/>
<add key="show_sql" value="true"/> //这里是看的别人的一个帖子,可以监视sql语句
</nhibernate>
我是直接写在web.config里头的,没有单独建一个config。这样双击aspx页面的button处理一下事件,体验一下nhibernate如何工作的。
using NHibernate;
using NHibernate.Cfg; //记得添加引用啊
using YangTest.Entity;
protected void btnAdd_Click(object sender, EventArgs e)
{
cfg = new NHibernate.Cfg.Configuration();
cfg.AddAssembly("YangTest.Entity");
sessions = cfg.BuildSessionFactory();
session = sessions.OpenSession();
YangTest.Entity.user user = new user();
user.LogOnID = "1";
user.name = "Jack";
user.Password = "654321";
user.Emailadress = "jack@163.com";
user.Lastlogon = DateTime.Now;
session.Save(user);
session.Flush();
session.Close();
}
好了,数据添加进去了,省去了自己写SQL语句的麻烦,这样就可以把精力集中起来处理业务流程的问题了,又提高生产率了,嘿嘿。
好了,就这么多了,我是新手,只知道这么多了,以后熟悉了之后可能会写深入一点。