[英]Entity framework code first mapping by foreign keys
我有以下表格:
Document (Id int PK, LatestVersionId int FK)
DocumentVersion (Id int PK, DocumentId int FK)
一個文檔可以有一個或多個版本,而一個版本屬於一個文檔。 我有以下課程:
public class Document {
public int Id {get;set;}
public int LatestVersionId {get;set;}
public DocumentVersion LatestVersion {get;set;}
}
public class DocumentVersion {
public int Id {get;set;}
public int DocumentId {get;set;}
public Document Document {get;set;}
}
當前的映射:
HasOptional(t => t.LatestVersion).WithRequired(t => t.Document).Map(t => t.MapKey("DocumentId")) // DocumentMap
HasRequired(t => t.Document).WithOptional(t => t.LatestVersion).Map(t => t.MapKey("LatestVersionId")); // DocumentVersionMap
我收到以下異常:System.InvalidOperationException:在類型'DocumentVersion'上聲明的導航屬性'Document'已配置有沖突的映射信息。
我應該如何映射這種關系?
您可以按以下方式更新類定義:
public class Document {
[Key]
public int Id {get;set;}
public List<DocumentVersion> DocumentVersions {get;set;}
}
public class DocumentVersion {
[Key]
public int Id {get;set;}
[ForeignKey("Document")]
public int DocumentId {get;set;}
public Document Document {get;set;}
}
流利的API:
modelBuilder.Entity<Document>()
.HasMany(d => d.DocumentVersions)
.WithRequired(version => version.Document)
.HasForeignKey(version => version.DocumentId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.