Fluent-NHibernate를 처음 사용했습니다. 내 문제는 두 엔티티간에 일대 다 관계를 설정하려는 것입니다. 제품은 여러 (고유 한) 개정을 가질 수 있으며 특정 개정은 하나의 제품에만 속합니다. 예를 들어, Product1에는 개정 "a"및 개정 "b"가 있지만 두 개의 개정 "a"를 가질 수는 없습니다. 그건 내 클래스 정의의 모습 내용은 다음과 같습니다UniqueKey 제약 조건과 일대 다 관계
public class Product
{
public virtual int ID {get; private set;}
public IList<ProductRevision> revisions { get; set; }
}
public class ProductRevision
{
public virtual int ID {get; private set;}
public Product isRevisionOf { get; set; }
public virtual string revision { get; set; }
}
다음은 ProductRevision 테이블에 내 매핑
public class ProductMap : ClassMap<Product>
{
public ProductMap()
{
Id(x => x.ID).Column("ProductNo");
HasMany(x => x.revisions).Cascade.All();
}
}
public class ProductRevisionMap : ClassMap<ProductRevision>
{
public ProductDefinitionFormationMap()
{
Id(x => x.ID);
References(x => x.isRevisionOf).UniqueKey("Product_Revision").Not.Nullable();
Map(x => x.revision).UniqueKey("Product_Revision").Not.Nullable();
}
}
내가 지금 얻을 것은 중복 열 "PRODUCT_ID"입니다입니다. 내가 양쪽에 hasMany() 및 references()를 사용하여 관계를 정의하면 뭔가 잘못되었습니다. 일반적으로 References (...) 매핑을 정의하지 않지만 uniquekey 제약 조건에 대해 필요합니다.
덕분에, 에릭
기본/외래 키에 관한 한이 두 테이블의 모양이 같습니다. 나는 당신이 이것을 필요 이상으로 복잡하게 만들고 있다고 생각하고 있습니다. –