私は今、私はそれをユーザオブジェクトを与える必要があり、設定を保存するたびにそう、私はFluent Nhibernateで参照をNullableにしないといけませんか?
-nullでないプロパティがnullを参照してもらう私の地図
public class Settings : ClassMap<Setting> { References(x => x.User).Not.Nullable(); }
でこのような何かを持っていますまたは 一時的な値
私は、これを実行することによって、リレーショナル制約を適用すると考えました。しかし、実際にはFkを使うだけで、オブジェクト全体を渡さなければならないのは変です。
内部的にすべてを再保存しておらず、Fkを追加してリレーショナル制約を保持するだけでいいと思います。
私はこれを正しい方法で行いますか?
編集
public class Settings : ClassMap<Setting>
{
Id(x => x.SettingId);
Map(x => x.Something);
Map(x => x.Something2);
References(x => x.User).Not.Nullable();
}
Public class User: ClassMap<User>
{
Id(x => x.UserId);
Map(x => x.FirstName);
Map(x => x.LastName);
HasOne(x => x.Settings);
HasMany(x => x.AnotherTable);
}
Settings s = new Settings()
{
Something = "142",
Something2 = "1421414"
};
session.Create(s); // this will crash as s.User equals null;
私は、ユーザー=ユーザーなかったので、私は疑問に思って今、この
User user = repo.GetUser("userId");
Settings s = new Settings()
{
Something = "142",
Something2 = "1421414",
User = user
};
session.Create(s); // this should work.
を行う必要があります。 nhibernateはuserIdを取得してSettingsタブに保存するのですか?それともユーザーテーブルに変更がないかチェックして、変更の「別のテーブル」をチェックしますか?
また、ユーザーテーブルと別のテーブルのすべてのフィールドを点滅更新しますか?
これは、オブジェクト全体を保存していることを意味していると思いますか?
「nullでないプロパティ参照がnullまたは一時的な値」で失敗するテストを投稿することができますので、あなたは何をやっているのか、あなたは何を期待していますか? –