0

我正在努力寻找解决“无法确定类型之间关联的主要目的”的正确方法。此关联的主体端必须使用关系流式 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 属性附件的单独部分类做些什么吗?谢谢!

4

1 回答 1

0

看起来您正在尝试使用继承,因此DocumentId不会被视为实体框架的外键。尝试更改您的模型以使用继承,它应该可以解决您的问题,就像这样。

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

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

通过从 中删除DocumentId属性SpecialDocument并使其继承自Document,Entity Framework 将知道,当您创建新属性时SpecialDocument,它将首先创建一个标准Document,然后在SpecialDocument表中根据需要添加属性。

于 2012-10-25T09:49:23.673 回答