【发布时间】:2011-09-22 15:49:27
【问题描述】:
是否可以使用 Code First 创建一对多关系,在它们之间使用链接/连接表?
public class Foo {
public int FooId { get; set; }
// ...
public int? BarId { get; set; }
public virtual Bar Bar { get; set; }
}
public class Bar {
public int BarId { get; set; }
// ...
public virtual ICollection<Foo> Foos { get; set; }
}
我希望这个映射如下:
TABLE Foo
FooId INT PRIMARY KEY
...
TABLE Bar
BarId INT PRIMARY KEY
TABLE FooBar
FooId INT PRIMARY KEY / FOREIGN KEY
BarId INT FOREIGN KEY
有了这个,我就有能力确保 Foo 只有一个 Bar,但该 Bar 可以被许多不同的 Foo 重复使用。
实体框架可以做到这一点吗?我宁愿不必将密钥放在 Foo 本身中,因为我不想要一个可为空的外键。如果可能,请提供使用 Fluent API 而不是数据注释的示例。
【问题讨论】:
标签: c# entity-framework-4.1 ef-code-first fluent-interface