今天第一次学习使用NHibernate,遇到了很多问题。
- 得把HashCodeProvider.dll放到bin目录里
- 在web.config配置文件里的<configuration>标签下面添加:
<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
这个用来处理nhibernate配置节
- 参数为程序集名称
Configuration cfg = new Configuration();
cfg.AddAssembly("NHibernate.Demo.QuickStart"); - 类的映射文件名称为 类名.hbm.xml,并且把这个文件的生成操作设置为 嵌入的资源
- 映射文件的class标签的name属性,告诉nhibernate去哪个程序集里面load哪个类。
- 映射文件的id标签映射数据库表里面的主键。
附类文件和类的映射文件:
类文件(User.cs):
using System;
namespace NHibernate.Demo.QuickStart
{
/// <summary>
/// User 的摘要说明。
/// </summary>
public class User
{
private string id;
private string userName;
private string password;
private string emailAddress;
private DateTime lastLogon;
public User()
{
}
public string Id
{
get { return id; }
set { id = value; }
}
public string UserName
{
get { return userName; }
set { userName = value; }
}
public string Password
{
get { return password; }
set { password = value; }
}
public string EmailAddress
{
get { return emailAddress; }
set { emailAddress = value; }
}
public DateTime LastLogon
{
get { return lastLogon; }
set { lastLogon = value; }
}
}
}
类映射文件(User.hbm.xml):
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="NHibernate.Demo.QuickStart.User, NHibernate.Demo.QuickStart" table="users">
<id name="Id" column="LogonId" type="String" length="20">
<generator class="assigned" />
</id>
<property name="UserName" column= "Name" type="String" length="40"/>
<property name="Password" type="String" length="20"/>
<property name="EmailAddress" type="String" length="40"/>
<property name="LastLogon" type="DateTime"/>
</class>
</hibernate-mapping>
最后感谢张老三的帮助。
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=132181