LinqPad에서 EF 4.3 응용 프로그램으로 똑같은 쿼리를 복사하여 붙여 넣기 때문에 똑같은 데이터베이스를 가리키고 다른 결과를 얻습니다. LinqPad에서는 2 개의 레코드가 반환됩니다. 응용 프로그램에서 "객체 참조가 객체의 인스턴스로 설정되지 않았습니다."라는 오류가 발생합니다. 우리가 외부 조인을 제거 할 때 응용 프로그램 코드에서 LINQ/LinqPad : 동일한 쿼리가 서로 다른 결과를 나타냅니다.
var Shippings = shippingRepository.All.ToArray();
var SalesOrderHeaders = salesOrderHeaderRepository.All.ToArray();
var Customers = customerRepository.All.ToArray();
var Stores = storeRepository.All.ToArray();
var Departments = departmentRepository.All.ToArray();
var toShip = from sh in Shippings
join h in SalesOrderHeaders on sh.OrderId equals h.SalesOrderHeaderId
join c in Customers on h.CustomerId equals c.CustomerId
join st in Stores on h.StoreId equals st.StoreId
join d in Departments on h.DepartmentId equals d.DepartmentId into outer
from o in outer.DefaultIfEmpty()
select new
{
OrderId = sh.OrderId,
CustomerName = c.Name,
StoreName = st.Name,
DepartmentName = (o.Name == null) ? o.Name : "None",
DeliveryDate = h.DeliveryDateTime
};
(부서를 추가하는) 그리고 쿼리가 LinqPad에서 ASN의 같은 2 개 레코드를 반환 필드 연관된.
누구든지이 기능을 수정하는 방법에 대한 통찰력이 있습니까?
나는 LINQPAd를 사용한 적이 없기 때문에 이것은 어둠 속에서 촬영 된 것이지만, LinqPad가 Linq를 Entity와는 반대로 Linq를 사용하는 것이 가능한가? –
자신 만의 datacontext 나 LinqPad에서 생성 한 데이터 카드를 사용 했습니까? –
한 가지주의 할 점은 각 저장소에서 'ToArray'를 호출하면 모든 조인이 SQL Server가 아닌 클라이언트 쪽에서 발생한다는 것입니다. 이것은 매우 느릴 것입니다. –