【发布时间】:2010-04-07 01:12:22
【问题描述】:
我正在尝试使用 NHibernate (2.1.2)、MySql.Data (6.2.2) 和 MySQL Server (5.1) 映射父子关系。我发现这必须在映射文件中使用<bag> 来完成。我构建了一个测试应用程序,该应用程序正在运行而不会产生任何错误,并且正在为每个条目执行insert,但不知何故,子表中的外键 (ParentId) 始终为空 (null)。
这是我的代码的重要部分...
家长
public class Parent
{
public virtual int Id { get; set; }
public virtual IList<Child> Children { get; set; }
}
<class name="Parent">
<id name="Id">
<generator class="native"/>
</id>
<bag name="Children" cascade="all">
<key column="ParentId"/>
<one-to-many class="Child"/>
</bag>
</class>
孩子
public class Child
{
public virtual int Id { get; set; }
}
<class name="Child">
<id name="Id">
<generator class="native"/>
</id>
</class>
程序
using (ISession session = sessionFactory.OpenSession())
{
session.Save(
new Parent()
{
Children = new List<Child>()
{
new Child(),
new Child()
}
});
}
任何想法我做错了什么?
【问题讨论】:
标签: c# .net nhibernate mapping