5

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

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

看起来答案很简单:

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

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

4

4 回答 4

4
var query = entities.Providers.FirstOrDefault(p => p.Id == 15).Services.ToList();
于 2012-06-21T11:04:09.313 回答
2

试试这个:

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

编辑

更正并测试了对真实模型和数据的查询。现在可以了。

于 2012-06-21T11:06:48.457 回答
2

是不是很简单

var matchingProviders = entities.Services.Single(s=>s.Id==15).Providers;
于 2012-06-21T11:09:22.867 回答
-1

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

entity.Providers.Join(entity.Services, c => c.ID, p => p.ID,(c, p) => new { Providers= c, Services= p })
于 2012-06-21T11:05:35.197 回答