【问题标题】:Not able to create database using entity framework无法使用实体框架创建数据库
【发布时间】:2014-09-30 16:06:45
【问题描述】:

我正在尝试在我的 asp.net mvc 应用程序中使用实体框架的代码优先方法。下面是我的自动生成的连接字符串...

<connectionStrings>
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
 </connectionStrings>

每当我按 F5 时,都会出现以下错误:

与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供程序:SQL 网络接口,错误:52 - 无法找到本地数据库运行时安装。验证 SQL Server Express 已正确安装并且本地数据库运行时功能已启用。)

我做错了什么??

我安装了 SQL Server 2008 企业版。我正在尝试使用 Windows 身份验证连接到 SQL Server。我也在关注视频教程,所以代码可能没有任何问题

【问题讨论】:

  • 这可能不是答案,但我使用的是 Visual Studio 2010 和 sql server 2008,而我使用的是 EntityFramework 6.1.1。这与 sql server 2012 兼容。在 sql server 2012 中添加了一个名为 localdb 的新功能。我读了最后一行错误并想通了。希望这对某人有所帮助.....

标签: c# sql-server asp.net-mvc entity-framework


【解决方案1】:

如果您尝试连接到您计算机上安装的 SQL Server 实例,您需要使用格式化的 connectionString 来代替它。您当前的 connectionString 正在尝试创建一个从中工作的数据库文件,而不是在您的 SQL 服务器实例中构建一个数据库。

试试这样的;

connectionString="data source=localhost;user id=&lt;user with dbo access&gt;;password=&lt;user password" providerName="System.Data.SqlClient" /&gt;

【讨论】:

  • 我要补充一点,我以前从未使用过代码优先,并且可能在 connectionString 中存在代码优先需要的额外信息。 this question 可能会对您有所帮助。
【解决方案2】:

如果您有 SQL Server Enterprise 版本,您很可能不会将其安装为 SQLEXPRESS 实例(这是 SQL Server Express 安装的默认设置随 Visual Studio 一起提供)。

你有未命名的 default 实例的可能性很大 - 所以尝试使用这个连接字符串:

<connectionStrings>
   <add name="ApplicationServices" 
        connectionString="data source=.;Database=YourDatabaseName;Integrated Security=SSPI;
        providerName="System.Data.SqlClient" />
</connectionStrings>

不确定您的应用程序是否真的使用ApplicationServices 连接字符串 - 如果没有,请调整您的应用程序正在使用的那个!此外,您需要将 YourDatabaseName 替换为您在应用程序中使用的实际数据库名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多