按嵌套列表的属性值过滤对象列表等于嵌套列表的另一个元素的相同属性的值

时间:2016-02-02 17:05:07

标签: c# sql linq linq-to-sql

好的,我有这个课程:

public class Person
{
    public int Id { get; set; }
    public string SpecialNumber { get; set; }
    public IQueryable<Game> Games { get; set; }
}  

这些课程:

public class Game
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal? RamNeeded { get; set; }
    public Town Town { get; set; }
}

public class Town
{
    public int Id { get; set; }
    public string TownName { get; set; }
    public string CountryName { get; set; }
    public string StateName { get; set; }
}

我需要显示SpecialNumber的{​​{1}},其 总和 的游戏&#39; Person是最棒的,来自人(RamNeeded),他们有游戏:

  1. 在一个 中,来自2个以上不同的 城镇
  2. 来自不同的 状态 在一个 国家/地区 (这意味着至少有两个游戏具有不同的状态)。
  3. 来自不同的 国家 (这意味着至少有两款不同国家的游戏)。
  4. 我需要在LINQ或SQL上进行此查询。希望你能帮忙。

1 个答案:

答案 0 :(得分:0)

只要您需要对具有相同属性值的集合的元素执行某些操作,您就可以在查询语法中使用GroupBy方法(或group子句)。

然后,您可以为每组元素使用不同的聚合函数。例如,在您的情况下,Count可用于检查该组是否包含特定数量的项目。

话虽如此,有问题的查询可能是这样的

1