5

私は2つのテーブルServiceとを持っていProviderます。ServiceProviderそれらの間に、2つのフィールド(2つのPKのそれぞれに1つ)しかない結合テーブルがあります。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

Try this:

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

EDIT

Corrected and tested the query on real-life model and data. It works now.

于 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 に答える