Как я могу заставить мои объекты EF4 использовать тип DateTime2 с SQL Server CE 3.5?

StackOverflow https://stackoverflow.com/questions/4379427

Вопрос

Я хотел бы сохранить значения 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 байта.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top