在不定义标量属性的情况下定义复合外键是否可行?
public class A
{
public virtual int AID { get; set; }
}
public class B
{
public virtual int BID { get; set; }
}
public class CompoundKeyClass
{
public virtual A AObject { get; set; }
public virtual B BObject { get; set; }
}
如何在不使用FluentAPI定义A和B类型的标量ID属性的情况下,使属性AObject和BObject成为CompoundKeyClass的复合PK?
答案 0 :(得分:1)
你做不到。 AID
和BID
都必须位于CompoundKeyClass
映射为复杂主键的位置,并且每个都必须映射为相关表的外键。
答案 1 :(得分:1)
我怀疑你不能;我能找到的最接近文档的是this:
的 KeyAttribute 强> 的
KeyAttribute用于指定属性/列是实体主键的一部分,仅适用于标量属性。
但是,您应该能够命名外键属性“_AID”和“_BID”,和/或将它们标记为[Browsable(false)]
。这应该确保您不会意外使用甚至看不到它们。