实体框架 5 外键映射约定



我有 2 个实体角色和权限,相应地关联一对多。

public class Role
{             
    public int Id { get; set; }
    public bool IsAdmin { get; set; }
    public virtual ICollection<Permission> Permissions { get; set; }
}
public class Permission
{
    public int Id { get; set; }
    public string Code { get; set; }
    public string GroupName { get; set; }
    public virtual Role Role { get; set; }    
}

并为它们创建了从EntityTypeConfiguration类继承的映射类。

当我运行我的应用程序时,EF 为我创建了数据库,并且Role_Id了上述这些实体的外键。

如何更改现有约定或添加新约定以获取外键中的下划线?

因此,我希望将 RoleId 作为实体的外键。

我不想使用数据注释属性,也不想向权限类(public int RoleId { get; set; })添加额外的属性,以便在映射中使用它,如下所示:
HasRequired(x => x.Role).WithMany(y => y.Permissions).HasForeignKey(o => o.RoleId);

谢谢
阿列克谢

实体框架目前不支持自定义全局约定,但您可以在 fluen API 中覆盖密钥的名称:

modelBuilder.Entity<Permission>()
            .HasRequired(x => x.Role)
            .WithMany(y => y.Permissions)
            .Map(m => m.MapKey("RoleId"));

相关内容

  • 没有找到相关文章

最新更新