1

私は2つのエンティティを持っています: Employee& Contract.

Contractエンティティには、プロパティAddedByEmployee&がありますAssignedToEmployee

クラスにコレクション ナビゲーション プロパティがEmployee必要ですが、クラスで正しいキーを参照するにはどうすればよいContractですか?

これまでのところ、私は持っています:

public class Employee
{
    public int EmployeeID {get; set;}
    public string Name {get; set;}
    private readonly ObservableListSource<Contract> _Contracts = new ObservableListSource<Contract>();
    public virtual ObservableListSource<Contract> Contracts { get { return _Contracts; }
}

public class Contract
{
    public int ContractID {get; set;}
    public string Name {get; set;}
    public int AddedByEmployeeID {get; set;}
    public int AssignedToEmployeeID {get; set;}

    [ForeignKey("AddedByEmployeeID")]
    public virtual Employee AddedByEmployee { get; set; }

    [ForeignKey("AssignedToEmployeeID")]
    public virtual Employee AssignedToEmployee { get; set; }
}

つまり、基本的には、マップしたいものであることをどのようにObservableListSource<Contract>知ることができますか?AddedByEmployeeID

ありがとう

4

1 に答える 1

0

DataAnnotationsこれは、または Fluent APIを使用して行うことができます。

あなたと一緒にそれを行うと、あなたのまたはプロパティのいずれかに属性をDataAnnotations追加できます(または両方ですが、必須ではありません)。InversePropertyContractsAddedByEmployee

これは、 と の間でEntity Framework関係を作成する必要があることを示します。ContractsAddedByEmployee

[InverseProperty("AddedByEmployee")]
public virtual List<Contract> Contracts
{
    get { return _Contracts; }
}

代わりに Fluent API を使用する場合は、次のように関係を明示的に定義するだけです。

modelBuilder.Entity<Employee>()
    .HasMany(p => p.Contracts)
    .WithRequired(p => p.AddedByEmployee)
于 2013-03-08T17:39:23.017 に答える