null 값을 허용하고 모든 필드에 기본값을 갖는 데이터베이스가 있습니다. 유창한 nHibernate를 사용하여, 일부 속성을 가지고 있지만 모든 속성을 채우지 않은 구성 요소가있는 경우 Insert에서 오류가 발생합니다. DynamicInsert 플래그를 구성 요소 수준으로 가져 오는 방법을 궁금합니다. 어쩌면 늦은 것일 수도 있지만, 여기를 내려 놓고 어디로 가는지 보겠습니다.nhibernate 동적 삽입이 일부 null로 실패 함 구성 요소 속성
매핑 :
public ClientMap()
{
Table("Clients");
DynamicInsert();
DynamicUpdate();
CompositeId()
.KeyProperty(x => x.Accountnumber, "acct_no")
.KeyProperty(x => x.Transferaccount, "tr_acct_no");
Component(c => c.Address,
m =>{
m.Map(x => x.Streetaddress, "coaddress").Not.Nullable().Default("");
m.Map(x => x.City, "cocity").Not.Nullable().Default("");
m.Map(x => x.Postalcode, "costate").Not.Nullable().Default("");
m.Map(x => x.State, "cozip").Not.Nullable().Default(""); });
}
시험 :
Client nw = new Client{ Address = new Address{Streetaddress = "my address"},Accountnumber = "6543219",Transferaccount = "1"};
IRepository repo2 = new Repository(session);
repo2.Save(nw);
오류 :
삽입 할 수 없습니다 : [BusinessObjects.Client # BusinessObjects.Client] [SQL은 : 클라이언트 INTO INSERT (coaddress, VALUE (?,?,?,?,?,?)]
생성자에서 기본 속성을 설정하면 삽입 오류가 발생합니다. 다음 문제는 무언가가 변경되지 않았을 때의 업데이트 전략입니다. 하나의 속성이 변경되면 전체 구성 요소가 업데이트되고 모든 개체 소비자가 모든 데이터를 필요로하지 않으므로 표준 접근 방식이 있어야합니다. –