【问题标题】:Use of where in multiple joins to remove rows - linq在多个连接中使用 where 来删除行 - linq
【发布时间】:2010-06-01 18:10:00
【问题描述】:

我有一张订单表。状态在与订单相连的土壤订单上。 我只想退回加入的土壤订单不具有“已移除”状态的订单。

我以为

   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 != "Removed" 而不是sso.status.Equals("Removed")!=true,会发生什么?
  • 我试过 sso.status != "Removed" 但不高兴。你怎么看SQL?
  • 没关系在这里找到东西weblogs.asp.net/scottgu/archive/2007/07/31/…
  • 对不起,在“如何查看生成的 sql”中找到了一些东西。还是卡住了!!帮助任何人?

标签: linq select join where


【解决方案1】:

DOH!就像大自然厌恶真空一样,任何 Null 都不能包含在选择中。向状态字段添加值并使其正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 2018-01-20
    相关资源
    最近更新 更多