我创建了一个windows窗体应用程序,它将使用客户机服务器模型访问数据库。我为实体框架模型创建了一个连接,它可以很好地使用以下连接字符串:
connectionString="metadata=res://*/CartonOrderModel.csdl|
res://*/CartonOrderModel.ssdl|
res://*/CartonOrderModel.msl;
provider=System.Data.SqlClient;
provider connection string="
Data Source=.SQLEXPRESS;
AttachDbFilename=E:DatabasesRollMeasurements.mdf;
Integrated Security=True;
Connect Timeout=30;
User Instance=True;
MultipleActiveResultSets=True""
providerName="System.Data.EntityClient"
我想知道如果这个连接字符串仍然会工作,当我部署它的客户端环境有一个中央数据库服务器和多个实例的应用程序将从客户端机器访问它。
我尝试将连接字符串更改为:
connectionString="metadata=res://*/CartonOrderModel.csdl|
res://*/CartonOrderModel.ssdl|
res://*/CartonOrderModel.msl;
provider=System.Data.SqlClient;
provider connection string="
Data Source=.SQLEXPRESS;
Initial Catalog=RollMeasurements;
User ID=sa;
Password=sapassword;
Connect Timeout=30;
User Instance=True;
MultipleActiveResultSets=True""
providerName="System.Data.EntityClient"
但是现在当我运行我的应用程序它给我这个异常:
生成SQL Server用户实例失败。只有一个集成的连接可以生成用户实例。连接将是关闭。
请帮我一下。谢谢!
我认为你必须删除User Instance=True
(或将其显式设置为False
)。用户实例是SQL Express数据库的本地副本,不适合在具有中央数据库的多用户环境中工作。
我想如果你想访问一个中央服务器,你需要改变Data Source=.SQLEXPRESS;到中央SQL server实例的行。
英语不是我的母语,所以可能不能正确理解这个问题。欢呼