我有一个 EF 代码优先模型,其中一个表与其他表具有多个一对多关系:
public class Note
{
[Key]
public Guid Id { get; set; }
public string NoteText { get; set; }
public string Author { get; set; }
public DateTime? CreationDate { get; set; }
}
public class Foo
{
public Foo()
{
Notes = new HashSet<Note>();
}
[Key]
public Guid Id { get; set; }
public virtual ICollection<Note> Notes { get; set; }
// other properties ommited...
}
public class Bar
{
public Bar()
{
Notes = new HashSet<Note>();
}
[Key]
public Guid Id { get; set; }
public virtual ICollection<Note> Notes { get; set; }
// other properties ommited...
}
如您所见,两者Foo
都有Bar
自己的 列表Notes
,但 aNote
属于 aFoo
或a Bar
。
在为迁移搭建脚手架时,EF在表中创建了一个外键Foo
,我认为这是不正确的。相反,我希望在 and 和 and 之间创建一个链接表。Bar
Notes
Foo
Notes
Bar
Notes
有没有办法自动做到这一点?还是我必须在我的代码优先实现中手动创建这些类?