动态属性绑定+无法确定类型之间关联的主要结束

时间:2012-10-25 06:59:31

标签: entity-framework attributes

我正在努力找出解决“无法确定类型之间关联的主要结束”的正确方法。必须使用关系流畅API或数据“实体框架

显式配置此关联的主要结尾

我有一个像这样的实体。

public partial class Document
{
     DocumentId {get; set;}
     DocumentName{get; set;}
}

public class SpecialDocument
{
     DocumentId {get; set;}  --> this is actually a foreign key from Document  
                                 at the same time it is also the primary key 
     SpecialDocumentName {get; set;}
}

我找到了一个像在属性上添加ForeignKey属性的解决方案。

public partial class SpecialDocument
{
      [ForeignKey("Document")]
      DocumentId {get; set;)
      SpecialDocumentName {get; set;}
}

然而问题是类是自动生成的,每当我更新edmx文件时,SpecialDocument都会被覆盖,所以现在我需要重新添加ForeginKey属性。

我可以对属性的SpecialDocument或Dnyaminc属性附件的单独部分类做些什么吗?谢谢!

1 个答案:

答案 0 :(得分:0)

看起来您正在尝试使用继承,因此DocumentId不会被视为具有Entity Framework的外键。尝试改变你的模型以使用继承,它应该解决你的问题,就像这样。

public partial class Document
{
     DocumentId {get; set;}
     DocumentName{get; set;}
}

public class SpecialDocument : Document
{
     SpecialDocumentName {get; set;}
}

通过从DocumentId移除SpecialDocument属性并使其继承自Document,实体框架将知道当您创建新SpecialDocument时,它将首先创建标准Document然后在SpecialDocument表格中,它会根据需要添加属性。