Принудительный «2005» для ProviderManifestToken в модели данных EF - PullRequest
1 голос
/ 01 июня 2010

Каждый раз, когда я обновляю свою модель данных, она принимает значение 2008, нарушая развертывание сервера 2005 года. Это что-то, кроме действия по сборке, которое я могу использовать, чтобы остановить это?

Ответы [ 3 ]

1 голос
/ 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"/>
0 голосов
/ 12 октября 2016

Я нашел этот вопрос, потому что мне нужно было предотвратить обновление EDMX до Sql Server 2012 (с 2008 года). Я также использовал MSBuild.CommunityTasks , но использовал немного более общее выражение XPath, чтобы избежать использования пространства имен (которое отличается от того, что показано в ответе jnosek):

    <XmlUpdate XmlFileName="Orders\Model.edmx" 
            XPath="//*[local-name() = 'Schema']/@ProviderManifestToken"
            Value="2008"/>
0 голосов
/ 01 июня 2010

Если вы подключитесь к БД / серверу 2005 года при обновлении, то оно останется на 2005. Это, или ручное редактирование, это единственные известные мне способы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...