nhibernate中的一对多映射,但可以';t拯救父亲';子实体的数据表中的s ID
如果有人能帮我?为什么执行测试代码后字段fatherid的值为null? 1) 父实体定义:nhibernate中的一对多映射,但可以';t拯救父亲';子实体的数据表中的s ID,nhibernate,Nhibernate,如果有人能帮我?为什么执行测试代码后字段fatherid的值为null? 1) 父实体定义: class father { public virtual string name; public virtual string id; public virtual IList<child> children; } class child { public virtual string id; public virtual string name; } 3
class father
{
public virtual string name;
public virtual string id;
public virtual IList<child> children;
}
class child
{
public virtual string id;
public virtual string name;
}
3) 父亲的映射文件
<class name ="father" table="dbfather">
<id name="id" column ="id">
<generator class ="assigned"/>
</id>
<property name ="name"/>
<bag name="ichild">
<key column="fatherid" />
<one-to-many class="child" />
</bag>
</class>
公共虚拟IList子对象;
应该是
public virtual IList<Child> children;
公共虚拟IList子对象;
是的,你是对的,这是我的错误,谢谢你的提醒。让我猜猜,这不是真正的问题。但是,由于代码甚至不会运行编译器错误和明显的打字错误(ichild=>childs),因此很难判断真正代码中的问题在哪里。
var cfg = new NHibernate.Cfg.Configuration().Configure("hibernate.cfg.xml");
using (ISessionFactory sessionFactory = cfg.BuildSessionFactory())
{
ISession session = sessionFactory.OpenSession();
try
{
Child c = new Child();
c.id= Guid.NewGuid().ToString();
c.name= "test";
Father f = new Father();
f.id = Guid.NewGuid().ToString();
f.name= "ftest";
f.children.Add(child);
session.Save(c);
session.Save(f);
}
finally
{
session.Flush();
}
}
public virtual IList<string> children;
public virtual IList<Child> children;