Я использую Visual Studio 2010 RTM с .NET / Entity Framework 4 RTM с подходом, основанным на моделировании.
Когда я создаю сущность с полем DateTimeOffset, разработчик модели EF пытается сопоставить DateTimeOffset с SQL datetime вместо SQL datetimeoffset.
Я использую SQL Server 2008 Express, поэтому datetimeoffset поддерживается в базе данных.
Visual Studio выдает эту ошибку:
Ошибка 2019: указанное сопоставление элемента недопустимо. Тип 'Edm.DateTimeOffset [Nullable = False, DefaultValue =, Precision =]' члена 'Создан' в типе 'Data.SqlStorage.MyType' не совместим с 'SqlServer.datetime [Nullable = False, DefaultValue =, Precision = 3] 'члена' Создано 'в типе' Data.SqlStorage.Store.MyTypes
Если я редактирую тип непосредственно в разделе EDMX StorageModels xml, я получаю следующую ошибку:
Ошибка 40: для типа datetimeoffset не указано пространство имен или псевдоним. Только PrimitiveTypes могут быть использованы без квалификации.
Почему разработчик не может правильно сопоставить это с типом даты и времени в SQL?
Эта проблема также возникала, когда я все еще работал с бета-версиями Visual Studio 2010 и .NET Framework 4.