C# 将SQL转换为Linq查询
我对Linq查询非常陌生,我只想将我的DB查询转换成Linq 以下是我的简单SQL查询:C# 将SQL转换为Linq查询,c#,linq,sql-to-linq-conversion,C#,Linq,Sql To Linq Conversion,我对Linq查询非常陌生,我只想将我的DB查询转换成Linq 以下是我的简单SQL查询: var query = "SELECT EnrollmentDate, COUNT(*) AS StudentCount " + "FROM Person " + "WHERE EnrollmentDate IS NOT NULL " + "GROUP BY EnrollmentDate"; var data = db.Database.SqlQ
var query = "SELECT EnrollmentDate, COUNT(*) AS StudentCount "
+ "FROM Person "
+ "WHERE EnrollmentDate IS NOT NULL "
+ "GROUP BY EnrollmentDate";
var data = db.Database.SqlQuery<EnrollmentDateGroup>(query);
var query=“选择EnrollmentDate,COUNT(*)作为StudentCount”
+“来自个人”
+“其中EnrollmentDate不为空”
+“按注册日期分组”;
var data=db.Database.SqlQuery(查询);
它工作得很好,但是怎么可能用Linq编写这个查询呢?,我就是不能将group by
语句转换成Linq。转换成Linq似乎有点棘手
有人能帮我吗?谢谢你的回答,但是我得到了一个
错误(xyzModel.SchoolContext不包含任何个人辩护)
问题已经更新。。。请再看一遍。thanx@ashok_damani,在您的模型中,代表表Person
的类是什么?将其替换为已编辑的queryur答案,现在其工作正常。但还有一件事,我在这里写了Select(group=>new-EnrollmentDateGroup()
,但与前面一样,我尝试将其转换为列表
(通过在尾部添加ToList()
),但是没有用,Y?@ashok_damani,我看不到你的编辑,但是你的答案是不允许将其转换为列表的,因为你正在选择一个使用新的关键字,这很酷!!!Marc Gravell,thnx是你的答案,但我正在寻找lamda表达式中的Linq作为Habib的答案。但是无论如何,thanx 4是一个快速的回答
var result = db.Person
.Where(r=> r.EnrollmentDate != null)
.GroupBy(r=> r.EnrollmentDate)
.Select( group=> new
{
EnrollmentDate = group.Key,
Count = group.Count()
});
var query = from row in db.Person
where row.EnrollmentDate != null
group row by row.EnrollmentDate into grp
select new {
EnrollmentDate = grp.Key,
Count = grp.Count()
};