Преобразовать строку подключения ADO.Net EF в совместимую строку подключения к облаку SQL Azure?

Сценарий

Я написал приложение Silverlight 3, использующее базу данных SQL Server. Я перемещаю приложение в облако (платформа Azure). Для этого мне пришлось настроить свою базу данных на SQL Azure. Я использую ADO.Net Entity Framework для моделирования своей базы данных. У меня запущено приложение в облаке, но я не могу заставить его подключиться к базе данных. Ниже приведена исходная строка подключения localhost, за которой следует строка подключения SQL Azure, которая не работает. Само приложение работает нормально, но не может получить данные.

Исходная строка подключения к локальному хосту

     <add name="InmZenEntities" 
    connectionString="metadata=res://*/InmZenModel.csdl|res://*/InmZenModel.ssdl|res://*/InmZenModel.msl;
    provider=System.Data.SqlClient;
    provider connection string=&quot;
    Data Source=localhost;
    Initial Catalog=InmarsatZenith;
    Integrated Security=True;
    MultipleActiveResultSets=True&quot;" 
    providerName="System.Data.EntityClient" />

Преобразованная строка подключения SQL Azure

<add name="InmZenEntities" connectionString="metadata=res://*/InmZenModel.csdl|res://*/InmZenModel.ssdl|res://*/InmZenModel.msl;
provider=System.Data.SqlClient;
provider connection string=&quot;
Server=tcp:MYSERVER.ctp.database.windows.net;
Database=InmarsatZenith;
UserID=MYUSERID;Password=MYPASSWORD;
Trusted_Connection=False;
MultipleActiveResultSets=True&quot;" 
providerName="System.Data.EntityClient" />

Вопрос

Кто-нибудь знает, правильна ли эта строка подключения для SQL Azure? Помощь очень ценится.


person Goober    schedule 09.10.2009    source источник


Ответы (1)


Просто удалите бит ;MultipleActiveResultSets=True, и все готово.

Для вашего удобства я уже сделал это за вас. Просто скопируйте и вставьте.

<add name="InmZenEntities" connectionString="metadata=res://*/InmZenModel.csdl|res://*/InmZenModel.ssdl|res://*/InmZenModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Server=tcp:MYSERVER.ctp.database.windows.net;Database=InmarsatZenith;UserID=MYUSERID;Password=MYPASSWORD;Trusted_Connection=False&quot;" providerName="System.Data.EntityClient" />
person Supremestar    schedule 12.11.2009
comment
Если это работает для вас (это работает для меня), отметьте это как ответ. Благодарю вас. - person Supremestar; 12.11.2009