You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core中如何通过Linq查询已关联促销的Customer列表

查询已分配促销活动的客户列表(EF Core + LINQ)

实体结构参考

EF Core生成的多对多关联实体通常包含双向导航属性,示例如下:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    // 多对多关联导航属性
    public ICollection<Promotion> Promotions { get; set; }
}

public class Promotion
{
    public int Id { get; set; }
    public decimal Discount { get; set; }
    // 多对多关联导航属性
    public ICollection<Customer> Customers { get; set; }
}

LINQ查询实现

方式1:仅获取客户基础信息

通过Any()判断客户是否关联了至少一个促销活动,过滤出符合条件的客户:

var customersWithPromotions = _context.Customers
    .Where(c => c.Promotions.Any())
    .ToList();

方式2:同时获取关联的促销活动

如果需要一并返回客户对应的促销详情,使用Include()加载关联的导航属性:

var customersWithPromotions = _context.Customers
    .Include(c => c.Promotions)
    .Where(c => c.Promotions.Any())
    .ToList();

以上查询会自动生成对应SQL,精准过滤出已分配促销活动的客户(仅返回客户1、2,排除无促销的客户3)。

内容的提问来源于stack exchange,提问作者victor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 18:33:58