2013-08-01 2 views
2

제공되는 GUID를 기반으로 특정 결과 집합을 반환한다고 가정하는 LINQ to Entities 쿼리가 있습니다.GUID로 검색 할 때 NULL을 반환하는 엔터티에 대한 LINQ

[OperationContract, WebGet(ResponseFormat = WebMessageFormat.Json)] 
    public List<OrderDetails> GetOrderDetailsByGUID(Guid OrderID) 
    { 
     var listit =(from OV in EC.OrderProductVariants 
       join O in EC.Orders on OV.OrderId equals O.Id 
       join PV in EC.ProductVariants on OV.ProductVariantId equals PV.Id 
       join P in EC.Products on PV.ProductId equals P.Id 
       join CT in EC.Customers on O.CustomerId equals CT.Id 
       join AD in EC.Addresses on CT.BillingAddress_Id equals AD.Id 
       where O.OrderGuid == OrderID 
       select new OrderDetails 
       { 
        OrderID = O.OrderGuid, 
        Company = AD.Company, 
        ShippingMethod = O.ShippingMethod, 
        Product = P.Name, 
        QuantityOnOrder = OV.Quantity 
       } 
        ).ToList(); 

     return listit; 
    } 

NULL을 반환합니다. 누구든지 내가 뭘 잘못하고 있다고 말할 수 있습니까? 이 같은 시나리오에서 일할 수

+0

에 액세스 할 수합니까입니까? –

+0

전체 설명. 주어진 GUID에 대해 SQL 데이터베이스에 유효한 레코드가 있는지 확인했습니다. 전체 메서드를 게시 해 드리겠습니다 –

+0

'ToList()'가'null'을 반환 할 수 있다면 솔직히 저는 놀랍습니다. 문서화되지 않았습니다. 비어있는'List'를 돌려주는 것을 의미합니까? –

답변

2

모든 솔루션은 뷰를 생성하는 단지 하나의 라이너 코드가 그것을 정확히 NULL로 반환 무엇

var q = EC.OrderProductVariants.SingleOrDefault(u => u.OrderGuid.Equals(guid)); 
관련 문제