1

Fluent API (Entity Framework v5) を使用して、次のドメイン クラス間に外部キー関係を確立しようとしています。

public partial class User
{
    public long UserID { get; set; }
    public string UserName { get; set; }
}
public partial class AccountGroup : BaseEntity
{
    public long AccountGroupID { get; set; }
    public string Name { get; set; }
    public long ModifiedBy { get; set; }
    public virtual User User { get; set; }
}

流暢な API

builder.Entity<User>().HasKey(p => p.UserID); //Set User Id as primary key
builder.Entity<AccountGroup>().HasKey(x => x.AccountGroupID); //SetAccountGroupId as PK

流暢な API を使用して User.UserId と AccountGroup.ModifiedBy 列の間に関係を設定する方法がわかりません。データ注釈でこれを行うことができますが、流暢な API を使用したソリューションを探しています

4

1 に答える 1

3

エンティティから ModifiedBy プロパティを削除します。

public partial class AccountGroup
{
    public long AccountGroupID { get; set; }
    public string Name { get; set; }
    public virtual User User { get; set; }
}

次に、外部キーを次のようにマップします。

builder.Entity<AccountGroup>()
    .HasRequired(x => x.User)
    .WithMany()
    .Map(m => m.MapKey("ModifiedBy"));

外部キーを null 許容にする必要がある場合は、代わりに HasOptional を使用します。

builder.Entity<AccountGroup>()
    .HasOptional(x => x.User)
    .WithMany()
    .Map(m => m.MapKey("ModifiedBy"));

あなたのように主キーを指定する必要もありません。Entity Framework は、規則に従ってそれらを検出します。

于 2013-07-18T15:26:43.043 に答える