2011-11-11 76 views
1

我看到了許多有關EF的視頻,但仍無法找到在我的項目中使用此工具的正確方法。 到處都在談論兩種情況,首先你有一個DB,沒有Domain模型,其次,你有DM,沒有DB。實體框架4.1和現有應用程序中的實際使用

我有一個已經啓動並正在運行的應用程序,具有良好定義的DM和數據庫。我定義了存儲庫接口,並使用簡單的SQL查詢來實現這個存儲庫。

現在,我分層的這種古董方法,我想開始使用EF。

但是我找不到通過EF開始實施具體存儲庫的方法。

你能建議我一個合適的方法嗎?

這是我目前的情況爲例:

類的部分摘錄

public class Order : IAggregateRoot 
{ 
    protected Order() 
    { 
     this._Items = new List<OrderItem>(); 
     this.Date = null; ; 
    } 

    /// <summary> 
    /// Creates an order for a given customer 
    /// </summary> 
    /// <param name="customer">The customer</param> 
    /// <returns>An order</returns> 
    public static Order CreateOrder(Customer customer) 
    { 
     Contract.Requires<ArgumentNullException>(customer != null, "customer"); 

     Order order = new Order(); 
     order.Customer = customer; 

     return order; 
    } 

    /// <summary> 
    /// Gets or sets the ship name 
    /// </summary> 
    [StringLengthValidator(40)] 
    public virtual string ShipName { get; set; } 

訂單倉庫界面

/// <summary> 
/// Represents the repository of objects of type Order 
/// </summary> 
public interface IOrderRepository : IRepository<Order> 
{ 
} 

數據庫表,其中所有這些存儲的是有一個奇怪的命名約定(荷蘭語)稱爲ordenen,具有特定名稱的列等。

現在我怎樣才能通過EF實現一個倉庫?

歡迎任何建議!

乾杯!

+0

您應該更好地從一些測試或POC應用程序開始瞭解EF的基礎知識,因爲此時看起來您似乎在詢問如何實施存儲庫,但是你不知道映射如何工作,這是我們無法用單一答案解釋的。從一些教程開始。 –

+0

你能給我一個好的教程或文章嗎?我需要將現有的DM映射到現有的數據庫,並且我還沒有找到任何解釋如何處理這種情況的視頻。謝謝 – MaiOM

+0

你打算使用代碼映射還是EDMX文件?順便說一句。當你有兩個類和數據庫時,你可以在EF無法完成映射的情況下結束。 –

回答

0

在asp.net網站上有一個非常整潔的教程,它將幫助您使用EF 4.1代碼優先或POCO啓動並運行。這是MVC Music Store,並將幫助您在一天之內完成所有任務。

有關使用EF,存儲庫和測試的應用程序的詳細構建。您可以閱讀Steven Sanderson編寫的名爲PRO Asp.net MVC3的書