C# 将ADO.Net实体数据模型连接到数据库
我有一个使用ADO.NET实体数据模型的WPF应用程序。创建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
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="data source=servername;initial catalog=databasename;integrated security=True;user id=username;multipleactiveresultsets=True;application name=EntityFramework""
providerName="System.Data.EntityClient" />
在我发布应用程序后,用户无法连接到数据库。他们得到了错误
基础提供程序在打开时失败
用户没有访问数据库的权限,但是由于配置文件中的凭据具有访问权限,因此用户不应该能够访问数据库
如果我在这里遗漏了什么,请告诉我,因为我无法找出我做错了什么。您有两个
集成安全=True
以及用户id=用户名代码>在“提供者连接字符串”中
别这样
如果您这样做,则integratedsecurity=true
将具有优先权,因此现在,将使用当前登录的用户凭据尝试连接
您需要从提供商连接字符串中删除integratedsecurity=true
provider connection string="data source=servername;initial catalog=databasename;integrated security=True;user id=username;multipleactiveresultsets=True;application name=EntityFramework"
************************ <--- remove this part
provider connection string=“数据源=服务器名;初始目录=数据库名;集成安全性=真;用户id=用户名;multipleactiveresultsets=真;应用程序名=EntityFramework”
************************我添加了如下的连接字符串:但是,我得到了错误,下面的连接无法打开。我想我得到了原因,当我给用户id密码时,它将接受SqL身份验证,因为DB需要Windows身份验证
provider connection string="data source=servername;initial catalog=databasename;integrated security=True;user id=username;multipleactiveresultsets=True;application name=EntityFramework"
************************ <--- 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="data source=servername;initial catalog=databasename;user id=username;multipleactiveresultsets=True;application name=EntityFramework""
providerName="System.Data.EntityClient" />