![](/img/trans.png)
[英]ASP.net core application targetting framework 4.6 unable to resolve for .NETFramework version 4.6
[英].NET Core - Targetting old .NET framework
我想要做的是:在 .net 核心應用程序(針對 .net 4.5)中使用舊項目(.NET 3.5)數據上下文和存儲庫。 我在下面給出了更詳細的解釋和我嘗試過的內容。
我想做什么
我正在工作中使用 .NET Core(在 .NET 4.6 框架上)構建一個 MVC 應用程序。 應用程序需要與現有數據庫集成。
通常在我的 .NET Core MVC 應用程序中,在startup.cs
我會執行以下操作:
services.DbContext<Context>(options...)
並解析連接字符串。 然后我執行services.AddTransient
... 並將存儲庫注入我的控制器,這讓我可以訪問數據庫。
但是,我想在工作中使用現有的代碼庫,而不是設置我自己的數據庫上下文、存儲庫和查詢。 我在與現有解決方案相同的解決方案中創建了我的項目。 現有項目是 Web 表單,並使用 .NET 3.5。 他們處理數據庫和存儲庫的方式有點不同——它使用System.Data.Linq
DataContext
,並從web.config
讀取連接字符串。 然后,控制器只是實例化此類的一個實例,而不是依賴注入。
我試過的
在我的startup.cs
,我嘗試創建一個 DataContext 並將其解析到另一個項目的存儲庫中,但它說類似You need to reference
System.Data.Linq in the .NET framework 3.5.0
。
面向 .NET 4.5 的 .NET Core 項目是否可以使用使用 .NET 3.5 構建的數據上下文類和存儲庫?
我實際上解決了我的問題。 我覺得我說的還不夠清楚。 這是我的解決方案:
解決方案 - .NET 3.5 項目 - .NET 4.5 項目
我在較新的項目中從 .NET 3.5 項目創建了一個存儲庫,它正在創建一個查找web.config
文件的數據上下文。 即使我創建了一個,它看起來也必須嘗試在啟動項目中找到web.config
,無論數據上下文是在哪里創建的。 我做了一個,但它仍然沒有檢測到,我不知道為什么。
我能夠進入舊項目並修改數據上下文以直接接收連接字符串。 但是,這並不理想 - 我將尋找一種方法將連接字符串從我的新項目傳遞到舊項目,我認為這是一個很好的解決方案。
@jwdeny 說我必須添加對 System.Data.Linq 的引用是正確的。 項目告訴我添加對3.5的引用,但添加System.Data.Linq 4.0就足夠了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.