2015-11-03 42 views
1

我正在構建一個將實體框架模型對象轉換爲另一個對象的工具。新對象應該保存爲一個文件。我宣佈類似下面的對象:我可以在沒有實體框架的情況下聲明dbcontext

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data.Entity; 

namespace CreateBusinessObjectByEF 
{ 
    class BusinessObjectBuilder 
    { 
     private DbContext db; 
     private DbSet dbSet; 
    } 
} 

但字符串DbContextDbSet由紅線,因爲命名空間的錯誤標記。我添加了對System.Data.Entity的引用,並且我不想添加對Entity Framework的引用,因爲我希望我的應用程序可以在EF的所有版本上運行。

那麼誰能幫助我?謝謝

+1

您將使用來自'EntityFramework.dll'('DbContext'和'DbSet')的類型,並且不想添加對'EntityFramework.dll'的引用。我錯過了什麼嗎?如果我不是,那麼這是不可能的。如果你想成爲EF版本不可知的,扔掉DbContext API並使用ObjectContext。請注意,這種方法不適用於EF 7(根本不會使用'ObjectContext' API,AFAIK)。也許,你會告訴我們你真正的任務嗎? – Dennis

+0

這只是不行。 –

+0

@ Dennis不,你不會錯過任何東西。 OP期望.NET框架太多。 :) – niksofteng

回答

0

https://dotnetthoughts.net/using-mef-in-dotnet-core/ - 研究這個。 MEF是一個插件庫,可以讓你做到這一點。將EF包裝爲插件,因此版本控制無關緊要。事實上,如果它遵守你設置的合同,它不需要是EF。

注意:如果我能舉一個例子,我會添加一個例子。

如果您需要硬連接,可以通過接口完成此操作。這是「原型」或「合同」。

在您的測試項目中(您應該添加一個),添加EF引用。還有一個從DbContext繼承的類和你的新界面。然後寫測試(可能功能?首選嘲笑 - >單元測試),看看它是否工作。應該在應用程序中複製並使用新類,而不是DBContext。

相關問題