我想做什么:在.net核心应用程序中使用较旧的项目(.net 3.5)数据上下文和存储库(目标.net 4.5)。我提出了一个更详细的解释和我在下面尝试的内容。
我想做什么
我正在使用.NET Core(在.NET 4.6框架上)构建一个MVC应用程序。应用程序需要与现有数据库集成。
通常在我的.NET Core MVC应用程序中,startup.cs
我做了类似的事情:
services.DbContext<Context>(options...)
并解析连接字符串。然后我做services.AddTransient
...并将一个存储库注入我的控制器,这使我可以访问数据库。
但是,我想在我的工作中使用现有的代码库,而不是设置我自己的数据库上下文和存储库和查询。我在与现有解决方案相同的解决方案中创建了我的项目。现有项目是Web表单,并使用.NET 3.5。他们执行数据库和存储库的方式略有不同 - 它使用DataContext
中的System.Data.Linq
,并从web.config
读取连接字符串。而不是依赖注入,控制器只是实例化该类的实例。
我尝试了什么
在我的startup.cs
中,我尝试创建一个DataContext并将其解析到另一个项目的存储库中,但它说的是You need to reference
System.Data.Linq in the .NET framework 3.5.0
。
所以我的问题是1)针对.NET 4.5的.NET Core项目是否有可能使用.NET 3.5构建数据上下文类和存储库?
感谢您对此问题的任何建议。
答案 0 :(得分:0)
我实际上解决了我的问题。我认为我不够清楚。以下是我的解决方案:
解 - .NET 3.5项目 - .NET 4.5项目
我是在我的新版本中从.NET 3.5项目创建一个存储库,它正在创建一个查找web.config
文件的datacontext。即使我创建了一个,看起来它必须尝试在启动项目中找到web.config
,无论数据上下文在何处创建。我做了一个,但它仍然没有检测到,我不知道为什么。
我能够进入旧项目并修改datacontext以直接接收连接字符串。但是,这并不理想 - 我会寻找一种方法将连接字符串从我的新项目传递到旧项目中,我认为这是一个很好的解决方案。
@jwdeny说我必须添加对System.Data.Linq的引用是正确的。该项目告诉我添加对3.5的引用,但添加System.Data.Linq 4.0就足够了。