[英]Many to Many select in LINQ to Entities
我有两个表Service
和Provider
。 它们之间是一个连接表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.