做项目的时候遇到一个要将数据库保存的日期yyyy-MM.dd hh:mm:ss.fff 转换yyyy-MM-dd hh:mm然后求和
于是直接在linq中这样写
var TotalSpace = db.DiskInfor
.Where(d => d.UpDateTime.ToString("yyyy-MM-dd hh:mm") == lastDate && d.Machine.ID == id)
.Select(d => (int?)d.TotalSpace)
.Sum() ?? 0;
Where(d => d.UpDateTime.ToString("yyyy-MM-dd hh:mm") == lastDate && d.Machine.ID == id)
然后 就悲催了
System.NotSupportedException:“LINQ to Entities does not recognize the method 'System.String ToString(System.String)' method, and this method cannot be translated into a store expression.”
找了一大堆资料五花八门说啥的都有
想了想大致linq执行的过程,好像ToList之后就不是在数据库里运行的SQL语句了于是就加了个ToList然后就成了
var TotalSpace = db.DiskInfor
.ToList()
.Where(d => d.UpDateTime.ToString("yyyy-MM-dd hh:mm") == lastDate && d.Machine.ID == id)
.Select(d => (int?)d.TotalSpace)
.Sum() ?? 0;
em~~~记录一下
在使用LINQ进行数据库操作时,尝试将日期格式从yyyy-MM.ddhh:mm:ss.fff转换为yyyy-MM-ddhh:mm并求和,遇到了LINQ不支持的方法调用问题。通过先将数据加载到内存中再进行格式转换,成功解决了这一难题。
1520

被折叠的 条评论
为什么被折叠?



