![](/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.