나는Fluent Nhibernate에서 Nullable이 아닌 참조를 작성해야합니까?
public class Settings : ClassMap<Setting>
{
References(x => x.User).Not.Nullable();
}
지금 때마다 내가 그렇지 않으면 내가 널없는 속성이 널 (null)를 참조
얻을 그것을 사용자 개체를주고 내가 가지고 설정을 저장하려면 내지도에 이런 일이 또는 일시적인 값
제 생각에는 관계형 제약 조건을 적용 할 것입니다. 그러나 실제로 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를 잡고 설정 tbl에 저장합니까 아니면 사용자 테이블에서 변경 사항을 확인한 다음 "다른 테이블"에서 변경 사항을 확인합니까?
또는 사용자 테이블과 다른 테이블의 모든 필드를 깜박입니다.
그게 전체 개체를 저장한다는 의미일까요?
"null이 아닌 속성 참조가 null 또는 일시적인 값"으로 실패하면 테스트를 게시 할 수 있으므로 수행중인 작업과 예상하고있는 작업을 정확히 알 수 있습니까? –