1

私はこれをEFで機能させる方法を見つけようとしています。私には2つのエンティティEmployeeとがありUserます。Userにオプションのマッピングがあるようにする必要がありますEmployee。マッピングがある場合、それは1:1になります。

基本的に、このシステムには従業員だけでなく外部ベンダーもアクセスできますが、ログオンを管理するために1つのテーブルが必要ですUsers

流体構成のEFでこの現実をどのように定義しますか?

4

2 に答える 2

3

シンプルな流暢な構成を設定するだけです。

modelBuilder.Entity<User>()
            .HasOptional(u => u.Employee)
            .WithRequired(e => e.User);

または逆の順序で:

modelBuilder.Entity<Employee>()
            .HasRequired(e => e.User)
            .WithOptional(u => u.Employee);

EF は、Employess の PK をユーザーへの FK として使用します。これは、EF が 1 対 1 の関係を正しく使用するための必須要件です。Data アノテーションの場合、Employee の PK をナビゲーション プロパティForeignKeyとペアリングする属性でマークするだけで十分です。User

public class Employee {
    [Key, ForeignKey("User")]
    public int Id { get; set; }

    public virtual User User { get; set; }
}
于 2012-08-12T08:27:34.323 に答える
1
public class User
{
    ...
    public virtual Employee Employee { get; set; }
}

このチュートリアルが役立つ場合があります。

于 2012-08-12T06:57:57.317 に答える