在呼叫连接中键入干扰

时间:2015-06-10 15:56:59

标签: c# linq

我已经构建了一个简短的甜蜜连接查询,试图了解如何创建连接。我设法用SQL做到了。但我不知道如何在LINQ中做到这一点。

LINQ:

public IQueryable<DepartmentBreakdownReport> GetDepartmentBreakdown
    (int SupplierID, int ReviewPeriodID)
{
    return (from detail in camOnlineDb.Details
            join suppDepp in camOnlineDb.SuppDepts
                on new { detail.ClientID, detail.CategoryID }
            equals new { suppDepp.ClientID, suppDepp.CategoryID }
            select detail.ClientID + "" + detail.CategoryID);
}

编辑:忽略引入的参数,我将迎合那些我加入工作后的人。

2 个答案:

答案 0 :(得分:1)

您将返回IQueryable<string>而不是我想要的IQueryable<DepartmentBreakdownReport>。要返回该类型,您需要通过指定类型在select中进行投影,如下所示:

return (from detail in camOnlineDb.Details
        join suppDepp in camOnlineDb.SuppDepts
            on new { detail.ClientID, detail.CategoryID }
        equals new { suppDepp.ClientID, suppDepp.CategoryID }
        select new DepartmentBreakdownReport
        {
            Property1 = detail.Property1,
            //your properties here
        });

答案 1 :(得分:0)

问题是类别ID在详细信息中可以为空,但在suppDepp中没有。

要修复它,我从非可空类型

更改了它