按我的理解,linq与sql对应,只不过,一个对应在代码里,一个对应在数据库里。之所以要使用linq,是让分工越来越精细的程序员可以基本不管数据库这一块,只须关注代码即可。
不过,linq与sql还是会有一点区别。比如这个group by。
在sql中,如果有group by,那么select的字段只能包含分组内容,或者count、sum、avg这些统计字段。
但在linq里面,是:group 你想要什么字段 by 分组字段
var q =
from p in db.Products
group p by p.CategoryID into g
select g;
但这只是最简单的情形,玩具级别。实际应用中,多表多字段参与分组比较常见:
from a in TableA
join b in TableB on a.Id equals b.aId
where ((b.Type == 1 || b.Type == 2 || b.Type == 5) && b.State == 1)
group new { a.Id, b.Name,b,CreateDate } by new { a.Id, b.Name } into g
select (new Class1 { Id = g.Key.Id, Name = g.Key.Name ?? "" });
class Class1
public int Id { get; set; }
publid string Name { get; set; }
参考文章:
http://www.cnblogs.com/aspnet2008/archive/2008/12/23/1358494.html
按我的理解,linq与sql对应,只不过,一个对应在代码里,一个对应在数据库里。之所以要使用linq,是让分工越来越精细的程序员可以基本不管数据库这一块,只须关注代码即可。不过,linq与sql还是会有一点区别。比如这个group by。在sql中,如果有group by,那么select的字段只能包含分组内容,或者count、sum、avg这些统计字段。但在linq里面,是:group 你想要什
Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等。
Linq中的Groupby方法也有这种功能。具体实现看代码:
假设有如下的一个数据集:
public class StudentScore { public int ID { set; get; } public string Name { set; get; } ...
在工作中程序需要对查询出来数据List进行进一步处理时,Linq的能力就体现出来了。例如以下一段代码,它的意思是对list按照ZG_ID, ZG_IDNAME, ZG_NO, CARD_NO进行分组求和后赋值到disZg,这个变量的数据组成就是select new{}中的内容,接下来就可以对disZg进行进一步分析操作了。
var disZg = from tt in list
wher...
FamilyAccountDataContext db = new FamilyAccountDataContext();//数据库实体上下文
//linq实现两表关联查询,使用group by进行分组,group和by之间放你后面要select的对象(如果只有一个字段,可以直接写,如果有多个可以像我一样使用匿名对象)
//select的时候也使用匿名对象的方式,并可以命名(
// 遍历查询结果
foreach (var item in query) {
Console.WriteLine("Name: {}, Age: {1}", item.Name, item.Age);
在上面的代码中,我们首先将DataTable对象转换为IEnumerable<DataRow>类型,然后使用LINQ查询语句查询数据,最后将查询结果转换为一个匿名类型,包含Name和Age两个属性。最后,我们遍历查询结果,并输出每个人的姓名和年龄。
gradle版本引起编译报错问题:Cause: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl.getM
110396