C# Nhibernate不加载主键值

C# Nhibernate不加载主键值,c#,nhibernate,C#,Nhibernate,我正在使用Nhibernate版本2.2将类映射到项目中的表。下面是我的类文件和映射文件 public abstract class BasicUser { public virtual int RowID { get; set; } public virtual string DisplayName { get; set; } public BasicUser() { } } <class name="BasicUser" t

我正在使用Nhibernate版本2.2将类映射到项目中的表。下面是我的类文件和映射文件

public abstract class BasicUser
{        
    public virtual int RowID { get; set; }

    public virtual string DisplayName { get; set; }

    public BasicUser()
    {
    }
}

<class name="BasicUser" table="UserAccounts"  >
<id column="RowID" type="Int32">
  <generator class="native" />
</id>
<property name="DisplayName" type="String" length="25" />
<!-- More mapping members -->
</class>
公共抽象类BasicUser
{        
公共虚拟整数RowID{get;set;}
公共虚拟字符串DisplayName{get;set;}
公共基础设施
{
}
}
我现在遇到的问题是,每当我保存一个对象时,它就会自动为该对象生成一个RowID。但是,当我稍后从数据库查询对象时(使用IQuery中的其他属性),我会得到RowID始终设置为0的对象。
你能告诉我如何用当前的RowID检索一个对象吗。谢谢。

非常抱歉耽搁了各位,我出去睡了一会儿:)。。这是我的密码

BasicUser user = null;
using (ISession session = sessionFactory.OpenSession())
{
    IQuery query = session.CreateQuery("From BasicUser user where user.Email=?");
    query.SetString(0, email);
    query.SetMaxResults(1);
    IList<BasicUser> results = query.List<BasicUser>();
    if (results.Count > 0)
        user = results[0];
}
return user;
BasicUser=null;
使用(ISession session=sessionFactory.OpenSession())
{
IQuery=session.CreateQuery(“来自BasicUser,其中user.Email=?”;
query.SetString(0,电子邮件);
query.SetMaxResults(1);
IList results=query.List();
如果(results.Count>0)
用户=结果[0];
}
返回用户;

这段代码有效,我获得了BasicUser对象的所有详细信息,除了它的行ID。

您应该为ID设置名称属性值,如下所示:

<class name="BasicUser" table="UserAccounts"  >
<id column="RowID" type="Int32" Name="RowID">
  <generator class="native" />
</id>
<property name="DisplayName" type="String" length="25" />
<!-- More mapping members -->
</class>


您能展示一些示例代码来演示失败的加载等吗?我们需要代码。如果你正在使用Load,它实际上会得到你想要的东西。哇,它确实有效:)非常感谢。还要感谢丹普,拉斐尔在这件事上花时间:)