EF Core fluent API中的多对多关系



我在使用fluent API的实体框架Core中遇到了一个问题。

我想动态配置一个多对多关系,所以我使用了以下代码:

var relationEntityBuilder = entityTypeBuilder1.HasMany(lambdaManyFirst)
.WithMany(lambdaManySecond).UsingEntity(j => j.ToTable(attribute.RelationTableName))

它几乎工作,但我仍然有一个问题ForeignKey。

默认情况下,EF尝试将列命名为"ObJect1sId"one_answers";Object2sId"但在我的例子中,外键列被命名为IdObject1"one_answers"IdObject2".

如何更改外键列名?

谢谢。

您需要使用其他一些UsingEntity重载,这些重载允许您配置左导航和右导航。

例如

entityTypeBuilder1
.HasMany(lambdaManyFirst)
.WithMany(lambdaManySecond)
.UsingEntity<Dictionary<string, object>>(joinEntityName,
j => j.HasOne<TEntity2>().WithMany().HasForeignKey(fkName2),
j => j.HasOne<TEntity1>().WithMany().HasForeignKey(fkName1),
j => j.ToTable(joinTableName)
);

相关内容

  • 没有找到相关文章

最新更新