类库(.Net Framework)不支持实体框架

时间:2018-02-21 04:59:59

标签: c# entity-framework

我为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:警告 审计员的建议 - 我只需要答案。请不要试图告诉我这个问题是重复的,不遵守规则等,因为我不在乎。让我得到答案,然后你可以阻止我想要的任何问题。然后让病人静静地坐着,不做任何评论。

1 个答案:

答案 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" />