У меня есть представление в моей базе данных, которое я хочу прочитать с помощью EF Core.
Данные, которые я прочитал с помощью своего представления, представляют собой столбец int, который я могу преобразовать в правильную дату с помощью этого оператора SQL:
CONVERT(NVARCHAR, DATEADD(MI, wf_activate, '1899-30-12'), 101) + ' ' +
CONVERT(NVARCHAR, DATEADD(MI, wf_activate, '1899-30-12'), 110) AS Start
Это будет правильно преобразовывать данные в:
12/17/2018 12-17-2018
Теперь я хочу получить доступ к моему представлению с EF Core 2.1 с этой моделью:
/// <summary>
/// Basis data from an ELO workflow.
/// </summary>
public class WorkflowStrangeUsersModel
{
/// <summary>
/// Gets or sets the workflow start date.
/// </summary>
public DateTime Start { get; set; }
}
иэтот контекст:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Query<WorkflowStrangeUsersModel>().ToView("INTRANET_WorkflowsStrangeUsers");
}
, который работает со строками и int и т. д., но в этом случае datetime выдает ошибку:
Исключительная ситуация при чтении значения базы данных длясвойство 'WorkflowStrangeUsersModel.Start'.Ожидаемый тип был «System.DateTime», но фактическое значение имело тип «System.String».
Поэтому я предполагаю, что мое преобразование в 101/110 (формат даты США) неверно.Я пробовал также локальный формат (немецкий) и по умолчанию (0), но та же ошибка.
Есть идеи?