【发布时间】:2017-09-27 16:51:58
【问题描述】:
var InventoryWares = SOM5Context.InventoryWares;
var InventoryDetails = SOM5Context.InventoryDetails;
var Items = SOM5Context.Items;
var goods = InventoryWares.Join(InventoryDetails,
p => p.PalletID,
x => x.PalletID,
(InventoryWare, InventoryDetail) => new { InventoryWare, InventoryDetail }).Join(Items.ToList(),
InventoryWare => InventoryWare.InventoryWare,
InventoryDetail => InventoryDetail.ItemNumber,
(WareItemNumber, ItemNumber) => new { WareItemNumber, ItemNumber })
.Select();
我在尝试将这三个表连接在一起时遇到错误,并且无法解决问题。我得到的错误是:
方法 'Queryable.Join(IQueryable, IEnumerable, Expression>, Expression>, Expression>)' 的类型参数无法从用法中推断出来。尝试明确指定类型参数。
三个变量InventoryWares、InventoryDetails 和Items 是我要连接在一起的三个表。红色波浪线出现在我的第二个 join 语句中。
我认为添加完整的参数名称将有助于明确说明我要使用的内容,但这不起作用。
【问题讨论】:
-
为什么
.Join(Items.ToList()...?更改为.Join(Items, ...会解决您的问题吗? -
我摆脱了 .ToList(),但仍然有同样的错误。
-
我想知道我是不是出了点问题。我想加入以下内容:IW.PalletID = InD.PalletID 和 IW.ItemNumber = Itm.ItemNumber(IW 是 InventoryWares,ID 是 InventoryDetails,Itm 是 Items)
-
所以你无法使用navigation properties? EF 和 LINQ 的好处之一是不必编写难看的 JOIN 代码。
标签: c# entity-framework join