2012-08-01 44 views
0

我知道這個問題被問了很多次,但我無法清楚地瞭解我需要什麼。如何使用Entity Framework實現3層方法?

我有一個WPF應用程序,我需要使用3層方法重做。

我已經使用實體框架來創建數據模型並使用Linq查詢來查詢數據。

objCustomer = dbContext.Customers.Where(c => c.CustCode == oLoadDtl.CustNo).First(); 

我使用Linq查詢哪裏有我需要在程序中從數據庫中獲取記錄。

所以,我只想知道哪些東西來自DAL,業務邏輯和UI層。

另外,如何區分它們?

實體數據模型能否被視爲DAL?

將實體模型放入單獨的類庫中是否更好?

回答

1

最好創建一個名爲DataAccess的特殊類來封裝EntityFramework-invokes。對於可以創建模型類的業務邏輯,如果需要,他們將使用DAL。其他細節取決於你的應用程序應該做什麼。 例如:

//DAL 
public class DataAccess 
{ 
    public static void GetCustomerByNumber(int number) 
    { 
     var objCustomer = dbContext.Customers.Where(c => c.CustCode == number).First(); 
     return objCustomer; 
    } 
} 

//Models 
public class Customer 
{ 
    public string Name { get; set; } 
    public int Number { get; set; } 

    public Customer GetCustomerByNumber(int number) 
    { 
     return DataAccess.GetCustomerByNumber(number); 
    } 

    public void ChangeProfile(ProfileInfo profile) 
    { 
     //... 
    } 
} 

主要事情是可擴展性,可重用性和您的解決方案的效率。

+0

這是否意味着我需要爲每個數據庫表和每個CRUD操作創建類? – sony 2012-08-01 10:52:42

+0

方法,而不是類:)例如,20個實體 - 每個實體4個或更多的CRUD操作 - >大約80個靜態方法。現代開發人員工具可以輕鬆管理它。如果某些實體的CRUD方法的數量超過6,我將在DataAccess類中創建嵌套類,該類將操作此實體。換句話說,我是爲大量語義相似的方法做的。 – 2012-08-01 11:02:04

相關問題