如何在第三个项目中引用和使用.NET Core 3.0和.NET EF 4.7项目,并使用它们的数据库连接?

时间:2019-09-03 11:32:02

标签: c# .net entity-framework .net-core-3.0

我主要是PHP开发人员,最近被迫进入.NET。

我有2个项目的解决方案:

  1. 一个具有到一个数据库的数据连接,并且是一个.NET Core项目
  2. 另一个具有到第二个数据库的数据连接,它是.NET EF 4.7项目。

我想创建一个控制台应用程序,使我可以使用两个数据库。我需要这两个项目,因为它们已经定义了所有模型和连接并且可以很好地工作。我需要能够连接到两个数据库,并获取一些数据以在控制台中输出。

到目前为止,我已经创建了第三个项目Core 3.0。我设法使用了第一个项目数据连接,但是我无法找出如何使用EF 4.7项目连接。我收到此错误:

  

具有不变名称'System.Data.SqlClient'的ADO.NET提供程序是   未在计算机或应用程序配置文件中注册,或   无法加载。有关详细信息,请参见内部异常。 ->   System.ArgumentException:指定的不变名称   在已注册的.NET列表中找不到“ System.Data.SqlClient”   数据提供者。

我尝试重新安装EntityFramework,检查app.config(存在提供者字符串),检查EntityFramework.SqlServer.dll是否在依赖项中-一切正常。

这甚至可能吗?第三项目可以成为Core 3.0项目吗?有人提到我应该使用.NET标准类库来同时处理两个项目,但是类库不是控制台应用程序。请指出正确的方向...

1 个答案:

答案 0 :(得分:2)

1和2都应该是.NET Standard项目。第三个应该针对.NET Core或.NET Framework。

恐怕您不能从.NET Framework项目中“使用” .NET Core项目,反之亦然。这就是为什么存在.NET标准的原因。

您可能要考虑将现有项目的某些部分分成针对.NET Standard的类库。然后,您可以从针对与要定位的.NET Standard版本兼容的版本编译的任何应用中引用它们。