Проблема с доступом к базе данных для Entity Framework

Я создал приложение Windows Forms, которое будет использовать модель клиент-сервер для доступа к базе данных. Я создал соединение для модели Entity Framework, и оно отлично работает со следующей строкой соединения:

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. Только интегрированное соединение может создать пользовательский экземпляр. Соединение будет закрыто.

Пожалуйста, помогите мне с этим. Спасибо!


person Uzair Ishaq    schedule 14.08.2011    source источник


Ответы (2)


Я думаю, вам нужно удалить User Instance=True (или установить его на False явно). Пользовательские экземпляры являются локальными копиями базы данных SQL Express и не подходят для работы в многопользовательской среде с центральной БД.

person Slauma    schedule 14.08.2011

Я думаю, что если вы хотите получить доступ к центральному серверу, вам нужно изменить Data Source=.\SQLEXPRESS; линия к центральному экземпляру сервера sql.

английский не мой родной язык, поэтому, возможно, я не правильно понял вопрос.

Ваше здоровье

person BonScott    schedule 14.08.2011