Поддержка SQL Server 2005 и 2008

#.net #sql-server-2005 #visual-studio-2010 #entity-framework #sql-server-2008-r2

#.net #sql-server-2005 #visual-studio-2010 #entity-framework #sql-server-2008-r2

Вопрос:

я хочу знать, как можно использовать Entity Framework против SQL Server 2008 и 2005?

Я разрабатываю приложение для SQL Server 2008 и хочу, чтобы оно могло запускаться в версиях 2005 и 2008. Я знаю, что можно изменить ProviderManifestToken с 2008 на 2005 в файле схемы edmx в текстовом редакторе. Но после того, как я обновляю свою модель из базы данных, она изменяет ProviderManifestToken обратно на 2008.

Как я могу сообщить Visiual Studio использовать схему 2005 при обновлении моей модели из базы данных?

Спасибо за любую помощь!

Нико

Ответ №1:

Прочитайте мой пост в блоге об EF и ProviderManifestToken.

С помощью MSBuild.Задачи сообщества, я добавил цель BeforeBuild, которая использует задачу XmlUpdate, чтобы всегда изменять ProviderManifestToken на 2005, на случай, если кто-то изменил его, обновив модель данных.

Вот цель BeforeBuild:

 <Target Name="BeforeBuild"> <XmlUpdate Prefix="ssdl"
            Namespace="http://schemas.microsoft.com/ado/2009/02/edm/ssdl"
            XPath="//ssdl:Schema/@ProviderManifestToken"
            XmlFileName="Model.edmx"
            Value="2005"/>
  

Ответ №2:

Я думаю, что изменение edmx вручную (взломать!) — единственный способ на данный момент. Особенно раздражает, когда вы забываете и развертываете его в среде с 2005 годом. 🙂

Я хотел бы знать другой способ…

Комментарии:

1. Проверьте мой блог для другого предложения, используя цель BeforeBuild в MSBuild.

2. Привет, Джек. Спасибо за обновление, это хороший пост в блоге. Я попробую, когда у меня будет немного времени.

Ответ №3:

Самый простой способ — перевести вашу исходную базу данных в режим совместимости SQL 2005 (уровень 90) на вашем сервере SQL 2008. Для этого вы можете использовать ALTER DATABASE.