2011-06-30 2 views
-1

У нас есть простое консольное приложение, которое использует EF 4 для обработки данных; читать с одного, делать что-то, вставлять в другую базу данных. В файле EDMX ProviderManifestToken для назначения db установлен на «2005».Как ProviderManifestToken влияет на базу данных, если версии не совпадают?

Вчера наше приложение взорвалось. Короче говоря, наш консультант говорит, что db, который должен быть SQL Server 2000, был обновлен до 2005 года. Это обновление, по их мнению, стало причиной имплозии приложения. Никто не может объяснить, как произошло обновление.

Может ли значение ProviderManifestToken вызывать обновление до db? Например, если db в настоящее время 2000, и это приложение работает с «ProviderManifestToken = 2005», может ли это сделать обновление на db? Что произойдет, если что-нибудь вообще, если версии не совпадают?

ответ

1

Считаете ли вы, что инфраструктура Entity содержит установочный DVD для обновления SQL Server 2000 до SQL Server 2005? Нет, нет. Provider manifest token описывает только диалект (EF генерирует запросы на основе диалекта). Он не вызывает никаких изменений в базе данных. Кто-то должен был обновить вашу базу данных (обновление до новой версии не является бесплатным - для этого у вас должна быть лицензия, она не загружается через обновление Windows).

КПП. SQL Server 2000 is not supported от EFv4 в любом случае. Если у вас установлен диалект на 2005 год, и ваше решение работало с вашей базой данных, то это было все время 2005, потому что запросы linq-to-entity с использованием First, Single, Take, Skip и т. Д., Сгенерированные для диалекта 2005 года, не работают на SQL Сервер 2000.

Смежные вопросы