toIndex
我在Linq中写这个查询
SELECT country, city, COUNT(school), COUNT(collage)
FROM T1
GROUP BY country, city
但他们会计入var count_captainRegisterd1 = (from a in dt1.AsEnumerable()
group a by new
{
oc_name = a.Field<string>("county"),
oc_city = a.Field<string>("city")
} into g
select new
{
g.Key.oc_name,
g.Key.oc_city,
country = g.Count()
}
).ToList();
列。我希望country
和country
都计算
答案 0 :(得分:0)
这是您查询的linq:
var count_captainRegisterd1 =
(from a in dt1.AsEnumerable()
group a by new
{
oc_name = a.Field<string>("county"),
oc_city = a.Field<string>("city")
} into g
select new
{
Country = g.Key.oc_name,
City = g.Key.oc_city,
SchoolCount = g.Count(r => !string.IsNullOrWhiteSpace(r.Field<string>("school"))),
CollageCount = g.Count(r => !string.IsNullOrWhiteSpace(r.Field<string>("collage")))
}).ToList();
答案 1 :(得分:0)
唉,你忘了写T1课。在我看来,除了ID之外,它还有一个Country
一个City
以及一个与School
和Collage
的一对多关系(你的意思是{{1} }}?)。像这样:
College
这足以让实体框架了解您想要设计的关系。
您的查询将是:
class T1
{
public int Id {get; set;}
public string Country {get; set;}
public string City {get; set;}
// relations: every T1 has zero or more Schools and Colleges:
public virtual ICollection<School> Schools {get; set;}
public virtual ICollection<College> Colleges {get; set;}
}
public class School
{
public int Id {get; set;}
// every School belongs to exactly one T1 using virtual key
public int T1Id {get; set;}
public virtual T1 T1 {get; set;}
...
}
public class College
{
public int Id {get; set;}
// every College belongs to exactly one T1 using virtual key
public int T1Id {get; set;}
public virtual T1 T1 {get; set;}
...
}
class MyDbContext : DbContext
{
public DbSet<T1> T1s {get; set;}
public DbSet<School> Schools {get; set;}
public DbSet<College> Colleges {get; set;}
}
在单词中:从T1序列中的每个元素,使用相同的城市/国家组合制作元素组。可能有几个相同的城市/国家组合(在美国有许多名为约克的地方)。所以一个小组可能有几个要素。从组中的每个元素中,取出存储在组密钥中的公共城市/国家/地区。从小组的所有元素中取出学校并统计所有学校。与大学一样。
介意:你从亚利桑那州的约克和南达科他州的约克一起学校。不确定这是否是你想要的,但这就是你的SQL所做的。
每个城市都在一个国家。每个国家都有零个或多个城市。把城市和国家放在他们自己的桌子里,并且有一对多的关系,这不是更好吗?例如,如果您将“Leningrad”重命名为“Sint Petersburg”,您是否要更新所有“人物”的表格?如果“塞巴斯托波尔”将国家从“乌克兰”改为“俄罗斯联邦”,你还想再次更新所有公民吗?选择你的表格和标识符,这样一旦你有了东西,如果它改变名称或位置,它就不会变得不同。