所以,我想要实现的目标如下:
我有一个名为OrderVersion的类。 Id基本上是版本号,OrderId有一个外键。我将这些映射为复合键,因为我需要Id和OrderId对是唯一的。但是,因为我需要为每个订单增加版本,例如:
订单1 =>版本1,版本2,版本3
订单1 =>版本1,版本2,版本3
这是目前正在使用的映射。
internal class VersionsMap : ClassMap<DataOrders.Version>
{
public VersionsMap()
{
Table("tblOrderVersion");
CompositeId()
.KeyProperty(x => x.Id, x => x.ColumnName("Id"))
.KeyReference(x => x.Order, "OrderId");
Map(x => x.Values)
.Column("[Values]")
.CustomType(typeof(XmlType<List<DataOrders.OrderChange>>));
Component(x => x.Created, c => {
c.Map(z => z.By, "CreatedBy")
.Length(150)
.Nullable();
c.Map(z => z.On, "CreatedOn")
.Nullable();
});
}
}
我可以使用复合键实现此目的,还是应该废弃它,只需在Id和OrderId组合上设置唯一约束,而不使用主键?