我已经构建了一个简短的甜蜜连接查询,试图了解如何创建连接。我设法用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);
}
编辑:忽略引入的参数,我将迎合那些我加入工作后的人。
答案 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中没有。
要修复它,我从非可空类型
更改了它