我在使用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)
);