Определите связь, используя столбец базы данных, а не свойство типа сущности - PullRequest
1 голос
/ 21 июля 2011
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);

Я использую здесь существующую структуру базы данных, и в идеале ясопоставил бы это, используя имя столбца базы данных.Так что как-нибудь скажи ему использовать tblOrderLine.colOrderId вместо OrderLine.OrderID.

1 Ответ

2 голосов
/ 21 июля 2011

Вы можете использовать метод Map() для сопоставления вашего FK

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