LINQ to Entity 쿼리를 사용하고 익명 형식을 반환하고 있습니다. 날짜 값은 데이터베이스에 UTC 형식으로 저장되므로 클라이언트에 반환 할 때 날짜 값의 결과를 UTC 형식으로 지정해야합니다. 이렇게하려면 Date.ToString("u")
을 사용하여 결과의 형식을 UTC로 지정하십시오. 유일한 문제는 LINQ 쿼리에서 ToString
을 사용할 때 SQL에서 변환 할 해당 명령이 없으므로 실패합니다. LINQ to Entity를 사용하여 쿼리의 결과를 UTC로 어떻게 반환합니까? SQL에 상응하는 방법이 없기 때문에LINQ에서 UTC를 사용하도록 DateTime 변경 IQueryable 익명 형식
Return _db.WorkOrders.Include("Client").Include("Warehouse")
.OrderByDescending(Function(wo) wo.Date)
.Where(Function(w)
(w.Status = WorkOrder.WorkOrderStatus.Submitted)
.Select(Function(wo) New With {.Client = wo.Client.Name,
.Date = wo.Date.ToString("u"), .Warehouse = wo.Warehouse.Name, .Status = wo.Status.ToString})
.ToDataSourceResult(request.Take, request.Skip, request.Sort, request.Filter)
쿼리가 wo.Date.ToString("u")
에 실패 여기 내 쿼리의 예입니다.
'wo.Date.ToUniversalTime(). ToString()'을 (를) 사용해 보셨습니까? –
@DanielShillcock SQL에 상응하는 것이 없기 때문에 LINQ 쿼리에서 이러한 함수를 사용할 수 없으므로 .NET은 그 함수를 어떻게 처리해야하는지 알지 못합니다. [link] (https://stackoverflow.com/questions/6887776/linq-convert-datetime-to-string) – Nse
먼저 ToList()를 사용하여 목록을 만든 다음 익명 개체에 투영하십시오. ToList()를 사용하면 모든 개체가 생성되고 SQL 대신 Object에 LINQ를 사용하기 때문에 ToString()이 지원됩니다. – Fran