gpt4 book ai didi

linq - 需要一个 LINQ 代码示例来链接两个没有外键的表

转载 作者:行者123 更新时间:2023-12-02 21:49:14 25 4
gpt4 key购买 nike

我需要一个针对以下场景的代码示例。

假设我有 2 个表,“订单”和“供应商”,并且“订单”有一个名为“SupplierId”的字段,每个供应商都有一个“城镇”字段,并且您希望返回向以下供应商下达的所有订单位于“伦敦”,LINQ 会是什么样子。棘手的一点是没有外键,因此没有导航属性。

所以

Order
SupplierId


Supplier
Id
City

链接是Supplier.Id == Order.SupplierId

条件是: 其中Supplier.Town =“伦敦”

两个表之间不存在外键。

那么要实现上述目标,LINQ 会是什么样子呢?

非常感谢。

最佳答案

您应该能够显式进行连接:

from order in db.Orders
join supplier in db.Suppliers on order.SupplierId equals supplier.Id
where supplier.City == "London"
select order;

(如果您愿意,您可以提前过滤“仅限伦敦境内的供应商”,但我怀疑这不会对查询计划产生任何重大影响。)

编辑:避免查询表达式 - 并为了简单起见移动“where”子句:

var londonSuppliers = db.Suppliers.Where(supplier => supplier.City == "London");
var query = db.Orders.Join(londonSuppliers,
order => order.SupplierId,
supplier => supplier.Id,
(order, supplier) => order);

(我假设您只想要订单。)

关于linq - 需要一个 LINQ 代码示例来链接两个没有外键的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18983332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com