3

最初にエンティティ フレームワーク コードを使用しています。私はコレクションを持っています:

 IDbSet<A> As {get;set;}

A は次のようなオブジェクトです。

 public class A
 {
    public int Id {get;set;}
    public string name {get;set};
    ....
    public IList<B> Bs {get;set;}
 }

そしてBは:

 public clas B
 {
    public int Id {get;set;}
    public string name {get;set;}
 }

linq を使用して、IList に B.name == "something" を含む As をフィルター処理したいので、これを実現するにはどうすればよいですか? 私は次のようなことをしようとしています:

context.As.Where(a => a.Bs.contains(....));
4

4 に答える 4

1
context.As.Where(a => a.Bs.Any(x => x.name=="something"));
于 2013-05-29T13:15:17.710 に答える
1

Any()メソッドを使用します。

var result = context.As.Where(a => a.Bs.Any(b => b.Name == "something"));
于 2013-05-29T13:15:50.337 に答える
1

そうですね、次のようにします。

var AsWithSomethingBs = 
                    context.As.Where(a => a.Bs.Any(b => b.Name == "Something"));

これは基本的に次のように言っています: A の B のいずれかが「何か」と等しい名前を持つすべての A をください

于 2013-05-29T13:15:53.977 に答える