我得到这个错误,
Only parameterless constructors and initializers are supported in LINQ to Entities.
Run Code Online (Sandbox Code Playgroud)
当我尝试从自定义类型投影到DateTime数组时,请注意DateCreated类型DateTime。
知道如何解决吗?
DateTime[] data = analyticRepo.GetAll()
.Where(x => DbFunctions.TruncateTime(x.DateCreated) == report.DateCreated.Date)
.Select(x => new DateTime(
x.DateCreated.Year,
x.DateCreated.Month,
x.DateCreated.Day,
x.DateCreated.Hour,
x.DateCreated.Minute,
x.DateCreated.Second,
x.DateCreated.Millisecond))
.ToArray();
Run Code Online (Sandbox Code Playgroud)
LINQ to Entities仅支持无参数的构造函数和初始化程序。
如果x.DateCreated已经是一个DateTime,只要选择的是:
DateTime[] data = analyticRepo.GetAll()
.Where(x => DbFunctions.TruncateTime(x.DateCreated) == report.DateCreated.Date)
.Select(x => x.DateCreated)
.ToArray();
Run Code Online (Sandbox Code Playgroud)
否则,您将必须实现所有结果,然后创建新DateTime对象:
DateTime[] data = analyticRepo.GetAll()
.Where(x => DbFunctions.TruncateTime(x.DateCreated) == report.DateCreated.Date)
.Select(x => x.DateCreated)
.AsEnumerable() // transition to Linq-to-Objects
.Select(x => new DateTime(
x.Year,
x.Month,
x.Day,
x.Hour,
x.Minute,
x.Second,
x.Millisecond))
.ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |