2016-11-29 110 views
1

我想要做的是:在.net核心應用程序(target .net 4.5)中使用較老的項目(.net 3.5)數據上下文和存儲庫。我提供了更詳細的解釋和我在下面嘗試的內容。.NET Core - 針對舊的.net框架

我想做

我建設我的工作中使用.NET的核心(在.NET 4.6框架)一個MVC應用程序是什麼。應用程序需要與現有數據庫集成。

在我的.NET的核心MVC應用程序

通常情況下,在startup.cs我做這樣的事情:

services.DbContext<Context>(options...)並解析連接字符串。然後我做services.AddTransient ...並注入一個存儲庫到我的控制器,這讓我可以訪問數據庫。

但是,我不想設置自己的數據庫上下文和存儲庫和查詢,而是希望在我的工作中使用現有的代碼庫。我使用與現有解決方案相同的解決方案創建了我的項目。現有的項目是Web表單,並使用.NET 3.5。他們執行數據庫和存儲庫的方式稍有不同 - 它使用DataContext,System.Data.Linq,並從web.config讀取連接字符串。然後,控制器不是依賴注入,而是實例化這個類的一個實例。

我已經試過

在我startup.cs,我試圖創建一個DataContext,並將其解析到其他項目的資料庫,但將System.Data.Linq in the .NET framework 3.5.0說的一樣You need to reference

所以我的問題是1)是否有可能針對.NET 4.5的.NET Core項目使用.NET 3.5構建數據上下文類和存儲庫?

謝謝你對這個問題的任何建議。

+0

我會建立兩個項目。一個是使用Net 3.5作爲舊代碼的類項目。然後用Net 4.5創建一個引用類項目的主項目。 – jdweng

+0

hi @jdweng - 實際上這是目前設置的。因此,使用3的舊項目(這不是啓動項目)。5,需要初始化一個datacontext,我不認爲它存在於.net 4.5中。我試圖用.net 3.5項目的相同方式創建一個,然後將它傳遞給舊項目的存儲庫,但是在.net 4.5項目中初始化它的地方變成了紅色並拋出錯誤,要求我從'system .data.linq',它存在於.net 3.5中,但似乎不存在於.net 4.5中。所以這就是我摔跤的問題。 – xenetics

+0

http://stackoverflow.com/questions/34830033/asp-net-5-missing-linq-to-sql-class一旦你完成了,你可以將這些對象封裝到.net核心應用程序中的可用對象中 –

回答

0

我真的解決了我的問題。我認爲我不夠清楚。這裏是我的解決方案是什麼樣的:

解決方案 - .NET 3.5的項目 - .NET 4.5的項目

我創建從.NET 3.5的項目在我的新的一個倉庫,它是創造一個DataContext該文件查找web.config文件。儘管我創建了一個,但它似乎必須嘗試在啓動項目內部找到web.config,而不管數據上下文是在哪裏創建的。我做了一個,但它仍然沒有檢測到,我不知道爲什麼。

我能夠進入舊項目,並修改datacontext直接接收連接字符串。然而,這並不理想 - 我會尋找一種方法將連接字符串傳遞到新項目中的舊項目中,我認爲這是一個很好的解決方案。

@jwdeny在說我必須添加對System.Data.Linq的引用時是正確的。該項目告訴我添加3.5的引用,但添加System.Data.Linq 4.0就足夠了。