2011-07-21 6 views
1
public class Order { 
    public int OrderID {get; set;} 
    public DateTime DateOrdered { get; set; } 
    public ICollection<OrderLine> OrderLines { get; set; } 
} 

public class OrderLine{ 
    public int OrderLineID { get; set; } 
    public int OrderID {get; set; } // I want to remove this 
    public string ItemName { get; set;} 
    public Int Qty { get; set; } 
} 

どのようにこれらをFluent APIを使用してマッピングしますか?私はOrderが集約のルートになるリポジトリパターンでこれらを使用しています。そのため、私はOrderLineにOrderへの参照を持たせたくない、またはOrderIDを持っていることを望んでいません。 OrderLineは、Orderという子供のために意味をなさないからです。現在、私はこれを使用していますエンティティタイプのプロパティではなく、データベース列を使用した関連付けを定義する

:私はここに、既存のデータベース構造を使用していますし、理想的に私は、データベースの列名を使用して、これをマップする

HasMany<OrderLine>(x => x.OrderLines).WithRequired().HasForeignKey(x => x.OrderID); 

。だから何とかOrderLine.OrderIDではなくtblOrderLine.colOrderIdを使用するように指示します。

+0

をマッピングするためにMap()メソッドを使用することができます。 'OrderLine'テーブルのPKとは何ですか? – Eranga

+0

OrderLineにはPKとしてOrderLineIDがあります。私は上記に合わせて調整します。 –

答えて

2

あなたはOrderLine`クラス `でPKの一部を削除することをお使いのFK

HasMany<OrderLine>(x => x.OrderLines) 
.WithRequired() 
.Map(m => m.MapKey("colOrderId")); 
+0

完璧、おかげで束! –

関連する問題