CompositeId + HasMany将DB中的字段加倍

时间:2011-11-10 09:30:57

标签: nhibernate fluent-nhibernate

我有ProductVariant表的这种映射:

Id(x => x.Id).Nullable();
Map(x => x.IsEnabled);
Map(x => x.ProductVariantName).Length(45);
Map(x => x.Description);
HasMany(x => x.TestCaseOrdered);
Map(x => x.CreatedDate);

和TestCaseOrder类一样:

 CompositeId().KeyReference(x => x.TestCaseData).KeyReference(x => x.ProductVariant);
 Map(x => x.TestCaseOrder);
 Map(x => x.TestCaseSetName).Length(45);

但是NHibernate使用两个ProductVariant列生成表TestCaseOrder:

1)具有主键且不为空的ProductVariant。

2)ProductVariantId类似于ProductVariant表的外键。 它们总是具有相同的数据

但我只需要一个领域。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

似乎是一种惯例。指定HasMany(x => x.TestCaseOrdered).KeyColumn("ProductVariantId");.KeyReference(x => x.ProductVariant, "ProductVariantId");应该解决它