2
주문 테이블이 있습니다. 상태는 명령에 결합 된 토양 경계에 있습니다. 결합 된 토양 순서가 "제거됨"상태가 아닌 주문 만 반환하려고합니다.여러 조인을 사용하여 행을 제거하는 위치 사용 - linq
나는
join sso in db.SoilSamplingOrders on ord.order_id equals sso.order_id
where sso.status.Equals("Removed")!=true
하지만 다음 레코드가 반환되지 않습니다 것을 생각했다! 어떤 도움 (아래 쿼리)에 대한
감사
var query =
from ord in db.Orders
join sso in db.SoilSamplingOrders on ord.order_id equals sso.order_id
where sso.status.Equals("Removed")!=true
join cust in db.Customers on ord.customer_id equals cust.customer_id
select new Listing
{
assigned_to = sso.assigned_to,
company = cust.company,
order_id = ord.order_id,
order_created = ord.order_created,
customer_id = ord.customer_id,
order_created_by_employ_id = ord.order_created_by_employ_id,
first_farm_on_order = (from f in db.SoilSamplingSubJobs
where f.order_id == ord.order_id
select new ListingSubJob { first_farm_on_order = f.farm }).
AsEnumerable().First().first_farm_on_order,
total_fields = (from f in db.SoilSamplingSubJobs
where f.order_id == ord.order_id
select new { f.sssj_id }).AsEnumerable().Count(),
total_area = (float?) (from f in db.SoilSamplingSubJobs
where f.order_id == ord.order_id && f.area_ha != null
select f.area_ha).Sum() ?? 0 ,
total_area_ph_density = (float?)(from f in db.SoilSamplingSubJobs
where f.order_id == ord.order_id && f.ph != null
select f.ph).Sum() ?? 0,
};
생성 된 SQL을 확인하십시오.이 문제가 발생하는 이유에 대한 실마리를 제공 할 수 있습니다. 또한'sso.status! = "를 사용하면 어떻게됩니까?'sso.status.Equals ("Removed ")! = true' 대신"? "을 제거 했습니까? –
sso.status를 시도했습니다! = "제거"되었지만 기쁨이 없습니다. SQL은 어떻게 보입니까? – bergin
해당 항목을 여기에서 확인하십시오. http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx – bergin