【发布时间】:2016-11-29 12:20:38
【问题描述】:
我想要做的:在 .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 创建一个主项目。
-
嗨@jdweng - 实际上这是当前的设置。因此,使用 3.5 的旧项目(不是启动项目)需要初始化数据上下文,我认为在 .net 4.5 中不存在相同的数据上下文。我尝试以与 .net 3.5 项目相同的方式创建一个,然后将其传递给旧项目的存储库,但是我在 .net 4.5 项目中对其进行初始化的位置变红并抛出错误,要求我包含来自 @987654331 的内容@,存在于 .net 3.5 中,但似乎不存在于 .net 4.5 中。这就是我正在努力解决的问题。
-
stackoverflow.com/questions/34830033/… 完成后,您可以将这些对象包装成 .net 核心应用程序中的可用对象
-
嗨@yaWang,感谢您提供的链接,我不是要在 .net 4.5 应用程序中添加 linq 到 sql 文件,而是使用 .net 3.5 中的整个类和数据上下文。不过感谢您提供的链接,尽管我认为我不能像答案那样将存储库和此类文件包装在 linq to sql 文件中。
-
签入菜单项目:添加参考:Net.查看 System.Data.Linq 是否存在。 Microsoft 有时会废弃库,但仍然提供它们。