我有一個ADO.NET背景,它是我第一次在一個嚴肅的項目中使用實體框架,所以我走了前來,得到了VS2012並正在使用它。 NET 4.5和實體框架5.在實體框架之上構建業務邏輯5 POCOs
我取數據第一種方式,並創建了數據庫,生成的.edmx也使用這種方法從上下文中分隔出來的POCOS:http://allen-conway-dotnet.blogspot.co.uk/2013/01/separating-entity-framework-poco.html
所以我的解決辦法看起來像這樣:
Data.Access (where I access the EF context and return POCOS to Business Layer)
Data.Model (where the POCOs are)
Data.Repository (where the context sites)
Presentation.Admin.Website
現在說我有在數據庫中的表/ POCO類(只是舉個例子 - 不是真正的)
namespace Data.Model
{
using System;
using System.Collections.Generic;
public partial class Car
{
public Car()
{
this.Parts= new HashSet<Parts>();
}
public int ID { get; set; }
public string Manufacturer { get; set; }
public string Model{ get; set; }
public Nullable<bool> Enabled { get; set; }
public virtual ICollection<Parts> Parts{ get; set; }
}
}
現在假設數據庫中的所有的車都有一個Web服務,甚至只是一個鏈接到一個URL,其返回XML並給我一個可用部分的列表。每輛車檢索零件數據的方式是不同的(一些是REST,一些WCF,一些來自CSV文件等)。
所以我想定義擴展Car的類並定義一個「GetParts()」方法,該方法將具有特定的業務邏輯來獲取該特定汽車的零件。
我也希望能夠從數據庫中獲取所有汽車並循環它們,爲每個汽車調用GetParts方法來檢索數據。
我想我需要定義一個接口或抽象類ICar聲明GetParts方法,並以某種方式合併汽車POCO,但越來越困惑如何去編碼這個。
任何人都可以簡單地解釋一下,我可以如何構造我的代碼來完成這個任務,也許會提出一個設計模式?
第一種方法讓我在我的模型中使用抽象類,並仍然生成數據庫表的映射 –