#.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.