2

私には2つのエンティティRoleとPermissionがあり、それに応じて1対多の関連付けがあります。

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; }、次のようなマッピングで使用するためにPermissionクラス()に プロパティを追加したくない。
HasRequired(x => x.Role).WithMany(y => y.Permissions).HasForeignKey(o => o.RoleId);

ありがとう、
アレクセイ

4

1 に答える 1

3

Entity Frameworkは現在、カスタムグローバル規則をサポートしていませんが、fluenAPIでキーの名前を上書きできます。

modelBuilder.Entity<Permission>()
            .HasRequired(x => x.Role)
            .WithMany(y => y.Permissions)
            .Map(m => m.MapKey("RoleId"));
于 2012-10-02T10:27:13.353 に答える