没有标量PK特性的EF PK FK映射

问题描述:

定义复合外部主键而不定义标量特性是否可行?没有标量PK特性的EF PK FK映射

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; } 
} 

我怎样才能使性能AObject和BObject CompoundKeyClass的化合物PK而不定义的用于使用FluentAPI A,B型的标ID属性?

你不能。 AIDBID都必须在您的CompoundKeyClass中映射为复杂主键,并且它们中的每一个都必须映射为相关表的外键。

+0

感谢您的回答。我担心这会发生。 – 2012-03-05 20:58:48

我怀疑你不能;最接近我可以找到这个文件是this

KeyAttribute

KeyAttribute用于指定一个属性/列是实体的主键的一部分,适用于标仅属性。

但是,您应该能够命名外键属性“_AID”和“_BID”,并/或将它们标记为[Browsable(false)]。这应确保您无法使用或偶然看到它们。

+0

这个建议也有帮助,谢谢 – 2012-03-05 20:59:51