2015-07-19 3 views
3

Я не могу отобразить столбцы Datetime2 в SQL Server для столбца DateTime на Mono на OS X.Mono InvalidOperationException на колонке DateTime (SQL Server)

created_at определяется как Datetime2 ненулевой столбец в SQL стороны, и я определяется как public DateTime created_at { get; set; } в C# сторона.

Я получаю это исключение:

InvalidOperationException: The 'created_at' property on 'revision' could not be set to a 'System.String' value. You must set this property to a non-null value of type 'System.DateTime'.

Однако такое же определение работает, когда работает мой проект в Windows.

+0

У меня та же проблема. К сожалению, похоже, что это текущее ограничение Моно, поскольку я наткнулся на [этот вопрос] (http://stackoverflow.com/questions/25577219/asp-net-mvc4-razor-on-mono-ef-6-datetime- авария). Как вы обходились вокруг? – unagi

+0

@unagi SQL-сервер сообщает этот столбец как строку в версии устаревшего протокола, которую mono реализует. Когда я ударяю версию протокола, сервер закрывает соединение после того, как я отправил пакет регистрации. Я в конечном итоге исправил функцию GetValue где-то: я попытался разобрать * каждую строку * на datetime, когда он выдает исключение, я возвращаю строку, иначе я возвращаю datetime. Но он будет генерировать исключение, если вы храните datetime в виде строки, поэтому я не открыл запрос слияния в репозиторий Mono (плохое обходное решение). Поиск кода будет держать вас в курсе. –

+0

@unagi Посмотреть последнее сообщение на https://github.com/mono/mono/pull/1773#issuecomment-136125909 Это было то, что я реализовал и отлично работает для своего собственного дела –

ответ

0

Пожалуйста Try This

public DateTime created_at { get; set; } 

это будет поможет вам ...

+0

У меня уже есть это определение на моей модели –