难以从我的LINQ语句中删除笛卡尔结果

时间:2016-06-14 09:27:28

标签: linq linq-to-sql

我有以下2个表

  1. 计算器
  2. CalculatorPoints
  3. 这些表彼此不相关(我的意思是没有PK,FK关系),但它们有一个共同的列,即CalculatorVersionNo。现在,当我运行以下LINQ语句时,它返回的笛卡尔积不是正确的结果。可以请任何人能够帮助我如何不获得笛卡尔结果

    from cp in db.CalculatorPoints
    join pbc in db.Calculators on cp.CalculatorVersionNo equals pbc.CalculatorVersionNo
    where cp.DealId == dealId
    select new CalculatorAndPoints {}
    

    计算器表输出

    Id  DocumentNumber  MinimumTerm BaseUnits   NewCustomer CalculatorVersionNo
    283 340                    3      10              2          1
    284 342                    0       0              0          1
    285 422                    3       4              2          1
    

    CalculatorPoints表输出

    ID  DealId  SelectedPoints  CalculatorVersionNo
    1   2344        0                     1
    2   2344        0                     1
    3   2344        0                     1
    

    结果我得到了9行,而我只是想在CalculatorVersionNo的基础上组合2个结果集,这样我就可以在输出中有3行,如下所示

    Id  DocumentNumber  MinimumTerm BaseUnits   NewCustomer CalculatorVersionNo ID  DealId  SelectedPoints  CalculatorVersionNo
    283     340                 3     10              2          1               1    2344   0                1
    

0 个答案:

没有答案