我构建了一个简短而甜蜜的连接查询,试图了解如何创建连接。我设法在SQL中做到了这一点。但我不确定如何在 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);
}
编辑:忽略引入的参数,一旦我的加入工作,我将迎合这些参数。
您返回的是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
});
问题是类别 ID 在详细信息中可为空,但在 suppDepp 中不可空。
为了修复它,我将其从不可为空的类型更改为不可空的类型