Дата посева в EF 2.1 - PullRequest
       23

Дата посева в EF 2.1

0 голосов
/ 02 июня 2018

Я использую новый способ заполнения данных в Entity Framework 2.1:

modelBuilder.Entity<Blog>().HasData(new Blog {BlogId = 1, CreateDate = DateTime.Now});

Однако применение этого к базе данных приводит к исключению Conversion failed when converting date and/or time from character string.Я вижу, что в сгенерированном SQL значение равно '2018-06-01T13:22:13.248-07:00', что неверно.И поскольку поле, очевидно, DateTime, я не могу отформатировать его в строку так, как мне бы хотелось.

Это ошибка в EF?Или я что-то упускаю очевидное?В традиционном EF-коде он работает нормально:

Blog.CreateDate = DateTime.Now;
...
context.SaveChanges();

Или, может быть, существует какой-то обходной путь на стороне SQL, который позволил бы ему принимать дату в этом формате?

Ответы [ 2 ]

0 голосов
/ 22 августа 2018

Проблема 1 здесь - ошибка преобразования.Это можно решить путем преобразования столбца в DateTime2.Ссылка: Заполнение DateTime в EF 2.1 вызывает исключение # 12211

Проблема 2 (DateTime.Now становится фиксированной датой / временем) - это то, что я тоже изучаю.

0 голосов
/ 19 июля 2018

Использование аннотации {[Column (TypeName = "datetime")]

public class Blog
{[Column(TypeName = "datetime")]
public DateTime CreateDate { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...