gpt4 book ai didi

asp.net-mvc-3 - Entity Framework - 连接字符串 - 不支持关键字 'Data Source'

转载 作者:行者123 更新时间:2023-12-01 02:32:46 28 4
gpt4 key购买 nike

我知道这是 EF 初学者面临的一个常见问题,这里有多个问题和答案,但我仍然无法解决这个问题。

我正在使用 EF 4.1 和 MVC 3,并在单独的库中从数据库生成了 EF 模型。我已将连接字符串从支持库中的 app.config 复制到我的应用程序的 web.config。我还通过传递 web.config 连接字符串来实例化对象上下文。

string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MasterDataContainer"].ConnectionString;

context = new MasterDataContainer(connectionString);

web.config 中的连接字符串如下
<connectionStrings>    
<add name="MasterDataContainer" connectionString="metadata=res://*/MasterData.csdl|res://*/MasterData.ssdl|res://*/MasterData.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=MasterData;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

我收到错误“不支持关键字:数据源”。
对此的任何帮助表示赞赏。

最佳答案

您不需要 EntityConnectionStringBuilder因为您已经有一个 EF 连接字符串。即只是

string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MasterDataContainer"].ConnectionString;
context = new MasterDataContainer(connectionString);
EntityConnectionStringBuilder可用于建立 EF 连接,例如一个 Vanilla .NET。

编辑
您好像遇到过这个问题 here .解决方法是逃避加载连接字符串,然后替换 &quot;"'"
更容易的是使用 name=ConnStringName ObjectContext/DbContext 的重载。在你的情况下,这将是
context = new MasterDataContainer("name=MasterDataContainer");

另请注意,如果您查看生成的 Context 的源(可能是 MasterDataContainer.Context.cs),默认构造函数应该将 EntityContainerName 属性硬编码到其中,因此您可能根本不需要向构造函数提供连接字符串,前提是您保留相同的实体容器名称。

http://msdn.microsoft.com/en-us/library/bb739017.aspx

关于asp.net-mvc-3 - Entity Framework - 连接字符串 - 不支持关键字 'Data Source',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12104036/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com