C# Nhibernate不加载主键值
我正在使用Nhibernate版本2.2将类映射到项目中的表。下面是我的类文件和映射文件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
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,它实际上会得到你想要的东西。哇,它确实有效:)非常感谢。还要感谢丹普,拉斐尔在这件事上花时间:)