使用 EFW 和 ViewModel 插入数据库时无法将类型 'System.DateTime?' 隐式转换为 'System.DateTime'
Cannot implicitly convert type 'System.DateTime?' to 'System.DateTime' when inserting into Database using EFW and ViewModel
我正在处理这个 ASP.NET Core MVC
项目,当我收到此错误时,我试图将 form
中的值保存到 Database
中:
Cannot implicitly convert type 'System.DateTime?' to 'System.DateTime'. An explicit conversion exists (are you missing a cast?)
我在 `ViewModel:
中使用 ?
将 FromDate
和 ToDate
设置为 nullable
ViewModel:
public class ILViewModel
{
...
...
public DateTime? FromDate { get; set; }
public DateTime? ToDate { get; set; }
}
在 Controller - POST Method
中,我按以下方式向 Database
添加值:
控制器:
if (ModelState.IsValid)
{
...
historyObj.FromDate = locationsHistoryVM.FromDate;
historyObj.ToDate = locationsHistoryVM.ToDate;
}
怎么办?
您需要从可为空的对象中获取值。那么你就不会得到错误
if (ModelState.IsValid)
{
...
historyObj.FromDate = locationsHistoryVM.FromDate.Value;
historyObj.ToDate = locationsHistoryVM.ToDate.Value;
}
我正在处理这个 ASP.NET Core MVC
项目,当我收到此错误时,我试图将 form
中的值保存到 Database
中:
Cannot implicitly convert type 'System.DateTime?' to 'System.DateTime'. An explicit conversion exists (are you missing a cast?)
我在 `ViewModel:
中使用?
将 FromDate
和 ToDate
设置为 nullable
ViewModel:
public class ILViewModel
{
...
...
public DateTime? FromDate { get; set; }
public DateTime? ToDate { get; set; }
}
在 Controller - POST Method
中,我按以下方式向 Database
添加值:
控制器:
if (ModelState.IsValid)
{
...
historyObj.FromDate = locationsHistoryVM.FromDate;
historyObj.ToDate = locationsHistoryVM.ToDate;
}
怎么办?
您需要从可为空的对象中获取值。那么你就不会得到错误
if (ModelState.IsValid)
{
...
historyObj.FromDate = locationsHistoryVM.FromDate.Value;
historyObj.ToDate = locationsHistoryVM.ToDate.Value;
}