2017-04-03 88 views
0

我有一個調用DAL庫的Web API應用程序。 DAL庫使用實體框架與SQL數據庫進行交互。現在,我需要在Web API項目中將連接字符串設置爲數據庫。這也要求我在Web API項目中安裝EF。有沒有什麼方法可以在Web API項目中設置連接字符串而無需安裝EF?調用使用實體框架的DAL

+1

一個解決方案是在Web配置文件中添加EF配置,然後在您的Web Api項目中引用DAL項目中的EF dll。 –

+0

是的,我希望避免這種情況。 –

回答

0

我在我的web api項目中使用了EF使用的相同連接字符串。我在web api項目中引用了EntityFramework.SqlServer.dll。現在,它工作。

0

你可以包裝DbContext,這樣DAL項目不會公開任何EF相關的組件。通過這樣做,你不必EF安裝到您引用的DAL項目的每個項目。

public class DataContextWrapper : IDisposable { 
    public DataContextWrapper() { 
     DataContext = new DataContext(); 
    } 

    internal DataContext DataContext { get; private set; } 

    public void Dispose() { 
     DataContext.Dispose(); 
    } 
} 

只要你倉庫等也都在DAL項目,他們不返回數據庫實體模型,但是,你會好起來的。

+0

謝謝。這正是我所做的。 web api項目中的連接字符串應該是什麼樣子? –

+0

有關配置的更多信息,請參見以下鏈接:https://msdn.microsoft.com/en-us/library/jj556606(v=vs.113).aspx – Viezevingertjes