LINQ to Entities, версия SQL Server и настройка ProviderManifestToken во время выполнения - PullRequest
2 голосов
/ 28 апреля 2010

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

Мы только что обнаружили, что при создании edmx для базы данных 2008 года для ProviderManifestToken устанавливается значение 2008, что означает, что некоторые запросы не будут работать с базой данных 2005 года.

Хотя это известная проблема , есть ли способ установить это значение во время выполнения на основе файла конфигурации?

1 Ответ

2 голосов
/ 02 мая 2011

Используя MSBuild.Community Tasks , я добавил цель 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"/>

...