我在 ASP.NET MVC 4 应用程序中使用 EF 6.4.4,并尝试使用 Fluent API 与连接表建立多对多关系来建模一些 SQL。我试图复制的 SQL 如下:
SELECT *
FROM tableA ta
LEFT JOIN joinTable jt ON ta.ID = jt.TAID
LEFT JOIN tableB tb ON jt.TBID = tb.ID
我尝试使用的流利语言是:
modelBuilder.Entity<tableA>()
.HasMany(t => tableB)
.WithMany()
.Map(m =>
{
m.ToTable("joinTable");
m.MapLeftKey("TAID");
m.MapRightKey("TBID");
});
代码可以编译,但是当我运行应用程序时,它会抛出异常
模型生成过程中检测到一个或多个验证错误
如果我注释掉 Fluent 并使用直接 LINQ (
from a in tableA....
),它可以工作,但我必须对连接进行编码。
有人知道为什么这可能不起作用吗?
问候。