繁体   English   中英

LINQ to Entities中有多对多选择

[英]Many to Many select in LINQ to Entities

我有两个表ServiceProvider 它们之间是一个连接表ServiceProvider ,它只有两个字段 - 两个PK中的每一个都有一个字段。 当添加到edmx时,连接的多对多表被抽象掉并且无法看到(如预期的那样)。

这很好,除非我想基于给定的服务获得提供者。 从这个问题

看起来答案很简单:

var query = from p in entities.Providers
            from s in entities.Services
            where s.Id == 15
            select p;

但这将返回所有提供者。 我在这做错了什么?

var query = entities.Providers.FirstOrDefault(p => p.Id == 15).Services.ToList();

尝试这个:

var res = from s in entities.Services
          where s.Id == 15
          select s.Provider;

编辑

修正并测试了对真实模型和数据的查询。 它现在有效。

不是那么简单

var matchingProviders = entities.Services.Single(s=>s.Id==15).Providers;

您可以尝试使用join ,如下所示:

entity.Providers.Join(entity.Services, c => c.ID, p => p.ID,(c, p) => new { Providers= c, Services= p })

暂无
暂无

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

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