我主要是PHP开发人员,最近被迫进入.NET。
我有2个项目的解决方案:
我想创建一个控制台应用程序,使我可以使用两个数据库。我需要这两个项目,因为它们已经定义了所有模型和连接并且可以很好地工作。我需要能够连接到两个数据库,并获取一些数据以在控制台中输出。
到目前为止,我已经创建了第三个项目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标准类库来同时处理两个项目,但是类库不是控制台应用程序。请指出正确的方向...
答案 0 :(得分:2)
1和2都应该是.NET Standard项目。第三个应该针对.NET Core或.NET Framework。
恐怕您不能从.NET Framework项目中“使用” .NET Core项目,反之亦然。这就是为什么存在.NET标准的原因。
您可能要考虑将现有项目的某些部分分成针对.NET Standard的类库。然后,您可以从针对与要定位的.NET Standard版本兼容的版本编译的任何应用中引用它们。