MySQL DBへの流暢なnhibernate自動マッピングに裏打ちされた、リポジトリパターンを使用する次のコードがあります。
次のスニペットは、ユーザーとユーザーをモデルに追加してから、データベースに永続化します。
user.Person.User = user;
これは機能しますが、オブジェクトが永続化されている場合Person
は、FKuserIdがnullに設定されていることを忘れないでください。
を自動的
Person.User
に入力する方法はありますか、それともこれを行うためのメソッドを作成する必要がありますか?そのユーザーに関連付けられているすべてのオブジェクトを永続化する方法はありますか(たとえば、1つのオブジェクトで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(); } }