我有两张表Service
和Provider
。它们之间是一个连接表ServiceProvider
,它只有两个字段 - 两个PK中的每一个都有一个字段。当添加到edmx时,连接的多对多表被抽象出来并且无法看到(正如预期的那样)。
除非我希望基于给定服务获得提供者,否则这一切都很好。从question:
开始看起来答案很简单:
var query = from p in entities.Providers
from s in entities.Services
where s.Id == 15
select p;
但这将返回所有提供者。我在这里做错了什么?
答案 0 :(得分:4)
var query = entities.Providers.FirstOrDefault(p => p.Id == 15).Services.ToList();
答案 1 :(得分:2)
试试这个:
var res = from s in entities.Services
where s.Id == 15
select s.Provider;
修改强>
更正并测试了对真实模型和数据的查询。它现在有效。
答案 2 :(得分:2)
这不像
那么简单var matchingProviders = entities.Services.Single(s=>s.Id==15).Providers;
答案 3 :(得分:-1)
您可以尝试使用join
,如下所示:
entity.Providers.Join(entity.Services, c => c.ID, p => p.ID,(c, p) => new { Providers= c, Services= p })