gpt4 book ai didi

c# - 没有逆属性的多对多

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:16 25 4
gpt4 key购买 nike

我想在 EF 中创建多对多关系。通常我会使用 InverseProperty 属性,但是在这种情况下:

Role ( Id, Name, ICollection<Privilege> )
Privilege ( Id, Name )

我没有逆属性。如何告诉 EF 一种特权可以用于多个角色?

[ 目前 EF 在 Privilege 表中放置了一个 Role_Id 列。这不是我想要的:-)]

编辑:我不想使用 Fluent API,我正在寻找一个属性。

最佳答案

modelBuilder.Entity<Role>()
.HasMany(r => r.Privileges)
.WithMany() // <- no parameter = no inverse property
.Map(m =>
{
m.ToTable("RolePrivileges");
m.MapLeftKey("RoleId");
m.MapRightKey("PrivilegeId");
});

我看到您不想要 Fluent API,但是使用数据注释是不可能的。带注释的映射选项只是 Fluent API 选项的一个子集,这是一种缺少带数据注释的映射选项的情况。这里需要 Fluent API。

关于c# - 没有逆属性的多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16121083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com