1

私には2つのエンティティがあります:

public class Banner {
  public Int32 Id { get; set; }
  public String Name { get; set; }
  public virtual ICollection<Role> Roles { get; set; }
} // Banner

public class Role {
  public Int32 Id { get; set; }
  public String Name { get; set; }
  public virtual ICollection<Banner> Banners { get; set; }
} // Role

ロールIDのリストがあります:

List<Int32> roles;

リスト内の役割の少なくとも1つを含むすべてのバナーを見つける必要があります。

context.Banners.Where(x => x.Roles.Contains(????))

これどうやってするの?

ありがとう、ミゲル

4

3 に答える 3

1
context.Roles.Where(r => roles.Contains(r.Id)).SelectMany(r=>r.Banners)
于 2013-02-28T18:34:47.563 に答える
1

あなたは近かった:

context.Banners.Where(x => x.Roles.Any(r => roles.Contains(r.Id)));
于 2013-02-28T19:46:05.597 に答える
0

ネストされたAnyを実行する必要があります。

context.Banners.Where(x => roles.Any(roleId => x.Roles.Any(BannerRole => roleId == BannerRole.Id)
于 2013-02-28T18:37:06.437 に答える