访问Entity Framework的数据库时出现问题

时间:2011-08-14 11:54:40

标签: sql-server database entity-framework connection-string sql-server-express

我创建了一个Windows窗体应用程序,它将使用客户端服务器模型来访问数据库。我为Entity Framework Model创建了一个连接,它可以使用以下连接字符串正常工作:

connectionString="metadata=res://*/CartonOrderModel.csdl|
                           res://*/CartonOrderModel.ssdl|
                           res://*/CartonOrderModel.msl;
                  provider=System.Data.SqlClient;
                  provider connection string="
                  Data Source=.\SQLEXPRESS;
                  AttachDbFilename=E:\Databases\RollMeasurements.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的用户实例。只有一个集成   连接可以生成用户实例。连接将是   闭合。

请帮我解决这个问题。谢谢!

2 个答案:

答案 0 :(得分:2)

我认为你必须删除User Instance=True(或明确地将其设置为False)。用户实例是SQL Express数据库的本地副本,不适合在具有中央数据库的多用户环境中工作。

答案 1 :(得分:0)

我认为如果要访问中央服务器,则需要更改数据源=。\ SQLEXPRESS;连接到中央sql server实例。

英语不是我的母语,所以也许不能正确理解这个问题。

干杯