【发布时间】:2011-09-16 14:16:05
【问题描述】:
我正在尝试运行一个非常简单的 EF Code First 示例,但遇到了上述问题。我已经听从了这里的建议(How to configure ProviderManifestToken for EF Code First)但无济于事。我终于设法让 EF 通过将实际连接字符串传递给 DBContext 而不是我定义的连接字符串名称来创建我的数据库和表。
这是我最初在 app.config 中由连接字符串定义的方式
<connectionStrings>
<add name="ProductContext"
connectionString="integrated security=SSPI;
data source=MYMACHINE;
persist security info=False;
initial catalog=Product"
providerName="System.Data.SqlClient" />
</connectionStrings>
名称“ProductContext”与 ProductContext 类匹配,并且数据库 Product 不存在。
按照上一个线程的建议,我将连接字符串名称传递给 ProductContext 和基本 DBContext cstor。这也不起作用。
最后,我传递了上面的连接字符串,一切正常,创建了数据库和表。
我使用的是 SQL Server 2008 和 EF 4.1。关于我做错了什么有什么想法吗?
谢谢,
肯
更新
该应用程序是 WPF 应用程序,而不是 Web 应用程序。从 app.config 中删除连接字符串后,我得到了同样的异常:
“发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 定位服务器/实例时出错 指定)”
【问题讨论】:
-
连接字符串是在你正在运行的项目的app.config中还是在库项目中?
-
它在主项目的 app.config 中,而不是库中。如何解决这个问题?
-
尝试将 app.config 添加到库项目并尝试共享主项目 app.config,但两种方法均无效。
-
它是一个网络应用程序吗? (那么连接字符串必须进入 web.config。)如果从配置文件中完全删除连接字符串会发生什么?您是否收到相同的错误消息或其他错误?
-
这是一个 WPF 应用程序。从 app.config 中删除连接字符串后,我得到了同样的异常。 [{“与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)"}
标签: sql-server entity-framework entity-framework-4.1 connection-string