2011-07-21 28 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; } 
} 

我怎麼會映射定義的關聯?我正在使用這些存儲庫模式,其中Order將作爲聚合的根源。因此,我不希望OrderLine參考Order或有OrderID。由於OrderLine只是有意義的,因爲它是Order的孩子。使用數據庫列,而不是實體類型屬性,這些用流利的API

目前我使用此:

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

我在這裏使用一個現有的數據庫結構和理想我想使用的數據庫列名映射此。所以不知何故告訴它使用tblOrderLine.colOrderId而不是OrderLine.OrderID

+0

這將消除'OrderLine'類PK的一部分。 'OrderLine'表上的PK是什麼? – Eranga

+0

OrderLine具有OrderLineID作爲PK。我會在上面調整以反映。 –

回答

2

可以使用Map()方法來映射你的FK

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

完美,謝謝一堆! –

相關問題