我正在努力找出解决“无法确定类型之间关联的主要结束”的正确方法。必须使用关系流畅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属性附件的单独部分类做些什么吗?谢谢!
答案 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
表格中,它会根据需要添加属性。