LINQ к Объектам производит запрос, содержащий datetime2 на Экспрессе SQL 2005

У меня есть LINQ к приложению Объектов и проекту базы данных управлять схемой в решении VS 2010, предназначающемся для.NET 4.0. Модель объекта в настоящее время перепроектируется от базы данных. Одна из таблиц определяется со столбцом даты и времени типа. Проект базы данных настроен для использования режима совместимости SQL Server 2005 года и таким образом, все это развертывается хорошо.

Я только что столкнулся с проблемой, где оператор обновления через платформу объекта, кажется, использует datetime2, а не дату и время, которая вызывает исключение, потому что SQL 2005 не поддерживает тот тип данных:

System.Data.UpdateException: An error occurred while updating the entries. 
See the inner exception for details. ---> System.ArgumentException: The version 
of SQL Server in use does not support datatype 'datetime2'.

От отслеживания стека, появляется, что ошибка, кажется, происходит в:

System.Data.Mapping.Update.DynamicUpdateCommand

Я просмотрел весь свой код SQL и код сущности и подтвердил, что никакие ссылки не существуют к datetime2 (включая dbschema файл). Я могу только прийти к заключению, что тип данных сгенерирован в динамическом SQL-запросе, сгенерированном платформой объекта.

Как я могу подтвердить или отклонить это, и как я мешаю ему произойти? Платформа объекта не знает, что я спросил проект дб предназначаться для режима совместимости 2005 года, и я не вижу способ указать ему на версию, на которую это смотрит. Если это имеет значение я создал этот проект на машине, которой действительно устанавливали Экспресс 2008 года, но я периодически переключаюсь на другую машину, которая не делает (и просто еще не может обновить).

5
задан Andrew Matthews 28 July 2010 в 05:05
поделиться