繁体   English   中英

实体框架将3个表连接在一起

[英]Entity Framework Joining 3 Tables Together

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>)的类型参数。 尝试显式指定类型参数。

这三个变量, InventoryWaresInventoryDetailsItems是我试图连接在一起的三个表。 红色的花体在我的第二个join语句上。

我以为添加完整的参数名称将有助于明确说明我要使用的内容,但这是行不通的。

这应该为您工作:

var goods = InventoryWares.Join(InventoryDetails,
        p => p.PalletID,
        x => x.PalletID,
        (InventoryWare, InventoryDetail) => new {InventoryWare, InventoryDetail})
    .Join(Items,
        x => x.InventoryWare.ItemNumber,
        Item => Item.ItemNumber,
        (x, Item) => new {x.InventoryWare, x.InventoryDetail, Item});

商品将是一个IQueryable,其中每个商品将具有3个属性: { InventoryWare, InventoryDetail, Item }

如果这不是您期望的查询,请提供有关您要实现的目标的更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM