Я не могу отобразить столбцы 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.
У меня та же проблема. К сожалению, похоже, что это текущее ограничение Моно, поскольку я наткнулся на [этот вопрос] (http://stackoverflow.com/questions/25577219/asp-net-mvc4-razor-on-mono-ef-6-datetime- авария). Как вы обходились вокруг? – unagi
@unagi SQL-сервер сообщает этот столбец как строку в версии устаревшего протокола, которую mono реализует. Когда я ударяю версию протокола, сервер закрывает соединение после того, как я отправил пакет регистрации. Я в конечном итоге исправил функцию GetValue где-то: я попытался разобрать * каждую строку * на datetime, когда он выдает исключение, я возвращаю строку, иначе я возвращаю datetime. Но он будет генерировать исключение, если вы храните datetime в виде строки, поэтому я не открыл запрос слияния в репозиторий Mono (плохое обходное решение). Поиск кода будет держать вас в курсе. –
@unagi Посмотреть последнее сообщение на https://github.com/mono/mono/pull/1773#issuecomment-136125909 Это было то, что я реализовал и отлично работает для своего собственного дела –