因为如果你尝试使用LINQ表达式的日期时间,你会得到:如何使用CreateDateTime在LINQ到实体表达式
Only parameterless constructors and initializers are supported in LINQ to Entities.
最好的办法是使用DbFunctions.CreateDateTime Method
:https://msdn.microsoft.com/en-us/library/dn218443(v=vs.113).aspx
不工作示例:
await ctx.Example.AsNoTracking()
.Where(e => e.Id == id)
.Select(e => new EducationDTO {
StartDate = new DateTime(e.StartDate, 1, 1)
EndDate = new DateTime(e.EndDate, 1, 1)
})
.ToListAsync().ConfigureAwait(false);
尝试例如:
await ctx.Example.AsNoTracking()
.Where(e => e.Id == id)
.Select(e => new EducationDTO {
StartDate = DbFunctions.CreateDateTime(e.StartDate, 1, 1, null, null, null) ?? DateTime.Now,
EndDate = DbFunctions.CreateDateTime(e.EndDate, 1, 1, null, null, null) ?? DateTime.Now,
})
.ToListAsync().ConfigureAwait(false);
在我尝试使用CreateDateTime
例如,CreateDatetime将是空的,我就把DateTime.Now
。
我在做什么错?
什么是'e.StartDate'? –
你在'e.StartDate'中期待什么? –