我有以下使用存储库模式的代码,由流利的 nhibernate 自动映射到 MySQL DB 支持。
下面的代码片段将一个用户和一个人添加到模型中,然后持久化到数据库中。
它可以工作,但是我必须记住,user.Person.User = user;
当对象被持久化时,Person
将 FK userId 设置为 null。
有没有办法自动导致
Person.User
填充,或者我需要创建一个方法来做到这一点?有没有办法使与该用户关联的所有对象都被持久化(例如,仅在一个对象上调用 repository.Save(obj) 并导致其他对象也被持久化。)
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(); } }