NHibernate的2个一对多的持续性
我有下面的代码,它使用存储库模式,由一个流畅的nhibernate自动映射到MySQL数据库作为支持 以下代码段将用户和人员添加到模型中,然后保存到数据库中 它可以工作,但是我必须记住把NHibernate的2个一对多的持续性,nhibernate,fluent-nhibernate,fluent-nhibernate-mapping,Nhibernate,Fluent Nhibernate,Fluent Nhibernate Mapping,我有下面的代码,它使用存储库模式,由一个流畅的nhibernate自动映射到MySQL数据库作为支持 以下代码段将用户和人员添加到模型中,然后保存到数据库中 它可以工作,但是我必须记住把user.Person.user=user否则,当对象被持久化时,Person将FK userId设置为null 是否有办法自动填充Person.User,或者我需要创建一个方法来完成此操作 是否有办法使与该用户关联的所有对象持久化(例如,仅对一个对象调用repository.Save(obj),并使其他对象也持
user.Person.user=user
否则,当对象被持久化时,Person
将FK userId设置为null
Person.User
,或者我需要创建一个方法来完成此操作AddSomething()
方法
将子对象添加到集合中,并在中设置父对象引用
孩子。但是如果代码中不需要父引用
您可以删除它(并且只映射集合)级联
选项 using (MySQLRepositoryBase repository = new MySQLRepositoryBase())
{
try
{
repository.BeginTransaction();
User user = new User() { Password = "12345", Username = "jbloggs", Person = new Person() };
user.Person.Firstname = "Joe";
user.Person.Lastname = "Bloggs";
user.Person.User = user;
repository.Save(user);
repository.Save(user.Person);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
repository.RollbackTransaction();
}
}