繁体   English   中英

将ADO.Net实体数据模型连接到数据库

[英]Connecting ADO.Net entity data model to database

我有一个使用ADO.NET实体数据模型的WPF应用程序。 创建edmx ,默认情况下会在app.config创建一个连接字符串,如下所示:

<add name="Entities" 
     connectionString="metadata=res://*/Model.DataAccess.DataModel.csdl|res://*/Model.DataAccess.DataModel.ssdl|res://*/Model.DataAccess.DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=servername;initial catalog=databasename;integrated security=True;user id=username;multipleactiveresultsets=True;application name=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

我在后面的代码中使用实体,如下所示:

Entities ent = new Entities();
var tes = (from e in ent.testtable
select e.name).tolist();

发布应用程序后,用户将无法连接到数据库。 他们得到了错误

基础提供程序在打开时失败。

用户没有访问数据库的权限,但是由于配置文件中的凭据具有访问权限,因此用户不应该能够访问数据库。

如果我在这里遗漏了一些东西,请告诉我,因为我无法弄清楚自己在做什么错。

同时具有Integrated Security=TrueUser id=username; 在您的“提供商连接字符串”中。

不要这样!

如果这样做,则Integrated Security=true将具有优先级,因此,现在,将尝试使用当前登录的用户凭据进行连接。

您需要从提供商连接字符串中删除 Integrated Security=true

provider connection string=&quot;data source=servername;initial catalog=databasename;integrated security=True;user id=username;multipleactiveresultsets=True;application name=EntityFramework&quot;
                                                                                     ************************  <--- remove this part  

请使用以下连接字符串:

<add name="Entities" 
     connectionString="metadata=res://*/Model.DataAccess.DataModel.csdl|res://*/Model.DataAccess.DataModel.ssdl|res://*/Model.DataAccess.DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=servername;initial catalog=databasename;user id=username;multipleactiveresultsets=True;application name=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM