EF core 一直在编表名和列?
Table 'player_roles' doesn't exist
请记住,我正在使用 Snake_case 列命名。
我有5张桌子
具有以下实体:
public class Role
{
public int Id { get; set; }
public string Name { get; set; }
public List<Player> Players { get; set; }
public List<Permission> Permissions { get; set; }
}
public class Permission
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Player
{
public int Id { get; set; }
public List<Role> Roles { get; set; }
}
以及配置
modelBuilder.Entity<Player>()
.HasMany(r => r.Roles)
.WithMany(p => p.Players)
.UsingEntity("players_roles");
EF 正在尝试查询player_roles?
原始 SQL
LEFT JOIN (
SELECT `p10`.`players_id`, `p10`.`roles_id`, `p11`.`id`, `p11`.`name`
FROM `players_roles` AS `p10`
INNER JOIN `player_roles` AS `p11` ON `p10`.`roles_id` = `p11`.`id`
) AS `t0` ON `t`.`id` = `t0`.`players_id`
这并不能回答你的问题,但我的建议是你通过上课来解决它
[Table("players_roles"]
public class PlayersRoles
使用按键等,从而避免流畅的API。
为什么会发生这种情况的答案会很有趣。 EF Core 在复数名称方面有一些魔力,所以我猜测它来自其中的一些。