Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将ADO.Net实体数据模型连接到数据库_C#_Wpf_Entity Framework_Xaml_Datagrid - Fatal编程技术网

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

C# 将ADO.Net实体数据模型连接到数据库,c#,wpf,entity-framework,xaml,datagrid,C#,Wpf,Entity Framework,Xaml,Datagrid,我有一个使用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;prov

我有一个使用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" />
在我发布应用程序后,用户无法连接到数据库。他们得到了错误

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

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


如果我在这里遗漏了什么,请告诉我,因为我无法找出我做错了什么。

您有两个
集成安全=True
以及
用户id=用户名在“提供者连接字符串”中

别这样

如果您这样做,则
integratedsecurity=true
将具有优先权,因此现在,将使用当前登录的用户凭据尝试连接

您需要从提供商连接字符串中删除
integratedsecurity=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  
provider connection string=“数据源=服务器名;初始目录=数据库名;集成安全性=真;用户id=用户名;multipleactiveresultsets=真;应用程序名=EntityFramework”

************************我添加了如下的连接字符串:但是,我得到了错误,下面的连接无法打开。我想我得到了原因,当我给用户id密码时,它将接受SqL身份验证,因为DB需要Windows身份验证
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" />