Значение параметра не принимается при попытке записи в БД

Я пытаюсь сохранить дату в БД, но я получаю красную линию под параметромstartDate, который имеет такой формат: 2016-05-06. Это работает, если я hardcode параметр, как это: StartProject = new DateTime(2016-05-06). Почему я получаю ошибку для этого параметра?

Сообщение об ошибке, когда я указываю на красную линию: Cannot convert from 'System.DateTime' to 'Long'.

Это часть кода в контроллере действий

public ActionResult CreateProjectResource(DateTime startDate, DateTime endDate) {
....
            var project = new Project
            {
              Name = projectName,
              StartProject = new DateTime(startDate),
            };

            db.Projects.Add(project);
            db.SaveChanges();
 ....

1 ответ

  1. Что касается документации на MSDN, DateTimeне имеет конструктора, который принимает DateTimeпараметр as, поэтому компилятор пытается использовать единственный конструктор с одним параметром, который является DateTime(Int64)и ожидает ТИКов, но поскольку a DateTimeне может быть преобразован в long, существует errormessage. Либо используйте его следующим образом:

    var project = new Project
            {
              Name = projectName,
              StartProject = startDate
            };
    

    Вам не нужно создавать новый DateTimeобъект, потому DateTimeчто он неизменяем.

    или если вы действительно хотите создать новое DateTime следующим образом:

    var project = new Project
            {
              Name = projectName,
              StartProject = new DateTime(startDate.Ticks)
            };