【发布时间】:2017-06-07 18:25:24
【问题描述】:
我有一个问题,Entity Framework 6 代码首先从我的类中创建多个外键,而它应该只创建一个。考虑一下我有 2 节课 -
public class Work
{
public Work()
{
Document1 = new Collection<Document>();
Document2 = new Collection<Document>();
Document3 = new Collection<Document>();
}
[Key]
public int WorkId { get; set; }
public virtual ICollection<Document> Document1 { get; set; }
public virtual ICollection<Document> Document2 { get; set; }
public virtual ICollection<Document> Document3 { get; set; }
}
public class Document
{
public int? WorkId { get; set; }
[ForeignKey("WorkId")]
public Work Work { get; set; }
}
现在,当我首先运行代码 update-database 命令时,它会在我的文档表中为 Work 表创建 3 个不同的外键 WorkId、Work_Id1、Work_Id2,这应该只是一个外键而不是 3。我知道应该有一个简单的注释来解决这个问题,或者我需要添加一个流畅的映射?
【问题讨论】:
-
Work通过三个属性(集合)Document1、Document2 和 Document3 连接到Document。这就是它创建三个外键的原因。如果您只想指定 1 个外键,其他两个将如何连接到 Document 实体。
标签: c# sql entity-framework