我为Login创建了一个类项目(类库)。我已经安装了EF>>创建模型>>创建的数据上下文文件>>执行"启用 - 迁移" NuGet包管理器中的命令>>执行"添加迁移" NuGet包管理器中的命令 现在,当我尝试执行最后一步时 - " update-database"在NuGet程序包管理器中,它发出错误"在建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)" 。连接没有问题,因为我重复了相同的步骤,但这次我使用了Web Project。它成功地 。
为什么我这样做:我有3个不同的应用程序使用相同的用户身份验证。我想我可以在所有3个项目中引用这个类项目进行身份验证。
我做错了吗?我错过了什么?或者是Class项目不支持EF?有什么工作吗?
编辑:类库使用App.Config,Web应用程序使用Web.config。
提前谢谢。
PS:警告 审计员的建议 - 我只需要答案。请不要试图告诉我这个问题是重复的,不遵守规则等,因为我不在乎。让我得到答案,然后你可以阻止我想要的任何问题。然后让病人静静地坐着,不做任何评论。
答案 0 :(得分:0)
最后,我找到了解决方法。 当我安装Entity Framework时,EF会在应用程序的配置文件中放置一些默认代码。如下:
问题代码:
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
解决方案:
这是我面临的问题的根源。默认情况下,它为自己创建一个本地连接字符串。我做了以下更改:
1.) Changed "LocalDbConnectionFactory" to "SqlConnectionFactory"
2.) Removed parameters tag completely.
所以看起来应该是这样的:
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />