Как я могу заставить мои объекты EF4 использовать тип DateTime2 с SQL Server CE 3.5?
-
09-10-2019 - |
Вопрос
Я хотел бы сохранить значения DateTime, используя тип DateTime2 в SQL Server CE 3.5.
Если это возможно, как бы я изменил модель данных своей сущности? Я пытался редактировать его вручную, и Visual Studio отказывается показать его в дизайнере впоследствии.
Решение
DateTime2 не существует, SQL Server Compact, чтобы сохранить значения DateTime2, вы должны сохранить в значении NVARCHAR (27) формы 'Yyyy-mm-dd HH: MM: Ss.nnnnnn' (см. http://msdn.microsoft.com/en-us/library/ms171931.aspx)
Другие советы
Если вы позаботитесь о размере вашей базы данных (особенно если у вас есть индексы в этом поле), вы можете использовать другой подход.
Держите в базе данных два поля DateTime (за Yyyy-mm-dd HH: MM: SS) и Smallint (за миллисекунды) И присоединяйтесь к ним, чтобы получить правильное время DateTime, прежде чем отображать в пользовательском интерфейсе.
В этом случае размер этих полей будет 10 байт (согласно этот источник, 8 байтов DateTime + 2 байта для Smallint). Размер Нварчар (27) 54 байта.