linq to entity GroupBy多个字段】的更多相关文章

var items = _voteRecordRepository.GetAll() .Where(x => programIds.Contains(x.ProgrammeId)) .GroupBy(x=>new {x.ClientType,x.ProgrammeId}) .Select((group)=>new ProgramVoteRecordSelectItem() { ProgramId = group.Key.ProgrammeId, GetVote=group.Count()…
可以连续使用:OrderBy,ThenBy 或者 OrderByDescending,ThenByDescending var data = db.User .Where(u => u.UserId != && u.DeleteMark == ) .Select(u => new { u.UserId, u.EnCode, u.Account, u.RealName, u.Gender, u.Birthday, u.Mobile, u.Manager, u.OrganizeId…
1.在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类型的字段,就会报响应的扩展方法无法自动推断参数类型的问题(比如:我用的是groupjoin扩展方法), 如果进行了常规的类型转换,比如将int字段对应的转换为string(ToString方法),这时编译的时候不会有问题了. 但是在运行的时候会报如下错误: LINQ to Entities 不识别方…
linq将大部分SQL语句进行了封装,这使得它们更加面向对象了,对于开发者来说,这是一件好事,下面我从基础层面来说一下GroupBy在LINQ中的使用. 对GroupBy的多字段分组,可以看我的这篇文章 概念 GroupBy,顾名思义,它是对集合中某个或者某几个字段进行分组,按着这个分组字段(这里叫key)进行排列,例如,我们按着用户表中部分进行分组,结果它会把人事部门的用户信息放在一起,技术部门的用户信息放在一起,一般地,在SQL里,我们只是对它们进行简单的聚集计算,如按着部门进行人员数量上的…
http://www.cnblogs.com/ASPNET2008/archive/2012/10/27/2742434.html 最近一年的项目,我主要负责一些小型项目(就是指企业内部的小项目),在数据库操作方面我们采用了以开发速度快为特点的Linq to Entity,这里我不多讲它的使用方法,先来分享下我认为还不错的几个地方:        1:某种情况下可以完全代替传统SQL开发      这里是指比较简单的数据库处理,比如查询,几个表关联查询及添加数据,更新数据,删除数据等,不包含特别…
之前一直用sql选择出数据放在一个集合中,然后再用Linq或者lambda去操作数据,今天学了Linq to entity 才知道原来linq产生是为了Entity.也就是EDM(实体数据模型) 关于EDM,个人觉得这篇博文写的不错:http://www.cnblogs.com/wyqlijin/archive/2011/02/25/1964934.html 这位仁兄的系列文章将的比较详细,高深! 我们创建完ADO.Net Data Entity之后就可以再vs中直接操作数据表和字段了 下面是第…
回到目录 对于从linq to sql迁移过来的开发者,对随机排序不会感到陌生,直接为datacontext添加一个方法再配合反射就可以实现随机排序了,代码如下: /// <summary> /// 数据上下文扩展 /// </summary> public partial class dbDataContext : IUnitOfWork { /// <summary> /// 随机排序时使用这个函数 /// </summary> /// <retu…
回到目录 眾所周知,在linq to entity的查询语句中,不允许出现ef不能识别的关键字,如Trim,Substring,TotalDays等.net里的关键字,在EF查询里都是不被支持的,它的原因可能是为了更好的提高查询的性能吧,毕竟,好的性能取决于你的程序标准,有了一个严格的标准,才能设计出好的程序来. 今天主要说一下,EF为日期方法留的一个后门,<后门>这个词大家在中国社会都应该知道了,顾名思义,就是反着原则走,你的原则对我没有用,哈哈!这东西有时候是有用的,因为在大的原则下,很可…
Linq to Entity中连接两个数据库时要注意的问题 今天大学同学问了我一个问题,Linq to Entity中连接两个数据库时,报错“指定的 LINQ 表达式包含对与不同上下文关联的查询的引用.” 研究下却是发现这个问题,下面是我做的测试: class Program     {         static void Main(string[] args)         {             using(UserDBEntities context=new UserDBEnti…
技术背景:框架MVC,linq to Entity 需要一定的lambda书写能力 问题:在简单的orm中完成一些简单的增删查改是通过where insert delete update 完成的,但是在这个过程中出现了一个需求:多项条件的and 和or 的组合查询 众所周知直接通过linq 写的话很方便,但是我们的框架使用了linq to entity,如果只用lambda来写比较复杂的and 和or 查询就比较麻烦了. 一:简单and 和or 查询 public void TextFoZK()…
技术背景:框架MVC,linq to Entity 需要一定的lambda书写能力 问题:在简单的orm中完成一些简单的增删查改是通过where insert delete update 完成的,但是在这个过程中出现了一个需求:多项条件的and 和or 的组合查询 众所周知直接通过linq 写的话很方便,但是我们的框架使用了linq to entity,如果只用lambda来写比较复杂的and 和or 查询就比较麻烦了. 一:简单and 和or 查询 public void TextFoZK()…
前言 在使用 Linq to Entity 的時候,會把之前 Linq to SQL 的想法就帶進去,寫好之後編譯也都不會出錯,但是實際上在跑的時候就會出現錯誤訊息了,這點真的要注意了.這次我遇到問題的時候就是時間相減的時候發生 的,希望本篇對於遇到問題的朋友有點幫助囉! 說明 先看看測試資料表的結構 接下來建立一個 Entity ,這部份就不多加解釋怎麼建 Entity 了. 現在我想查出結束時間和起始時間差距一天以上的資料,很自然的寫出下面的程式碼: C# var data = db.Tes…
利用Entity Framework修改指定字段中的值一般我们编辑某些模型的时候会用到类似这样的代码: [HttpPost] public ActionResult Edit(Article model) { if (model.Id == 0) { return HttpNotFound(); } using (db) { db.Entry(model).State = EntityState.Modified; db.SaveChanges(); } return RedirectToAct…
最近工作中遇到数据库组合查询带来的一些问题,因此有必要调研一下Linq to Objects Join Linq to Entity.参考一些网友的代码案例,深入实践了一下使用EntityFramework Code First 下的组合查询. 准备环节: (一) 在VS下创建一个控制台应用程序(LinqToObjectJoinEntity),定义一个MyObject类,如下: public class MyObject { public int Identity { get; set; } p…
字段1 降序 字段2 降序 var str = db.xxx.OrderByDescending(p=>p.字段1).ThenByDescending(p=>p.字段2) ThenBy - 在 OrderBy 或 OrderByDescending 的基础上再正序排序ThenByDescending - 在 OrderBy 或 OrderByDescending 的基础上再倒序排序…
GroupBy根据多个字段分组使用方式: 一.使用扩展方法 query.GroupBy(q => new { q.Year, q.Month }) .Select(q => new { Year = q.Key.Year, Month = q.Key.Month, BuildAmount = q.Sum(i => i.BuildAmount), RecAmount = q.Sum(i => i.RecAmount), Amount = q.Sum(i => i.Amount)…
public class Book { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [Required, MaxLength()] public string Title { get; set; } public Double? Price { get; set; } } 解决方案一: var bkList = db.Books.Select(allBooks =>…
1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述:Linq使用Group By按CategoryID划分产品. 说明:from p in db.Products 表示从表中将产品对象取出来.group p by p.CategoryID into g表示对p按CategoryID字段归类.其结果命名为g,一旦重新命名,p的作用域就结束了,所以,最后select时,只能select…
在开始了解LINQ to Entities之前,需要先对.NET Framework 3.5版本后对C#语言的几个扩展特性做一些阐释,这有助于我们更容易.更深刻的理解LINQ to Entities技术的原理与实现. 一.隐式实例化局部变量 .NET Framework 3.5后,实例化局部变量语法有了新的选择:使用“var”关键字隐式类型化: var user = new User(); 隐式类型化语法与Javascript语言里声明变量的语法类似,它可以一定程度上简化实例化局部变量的语法.但…
1.单字段分组并求和: var list = data.GroupBy(g => g.GoodsId).Select(e => new { GoodsId = e.Key, Qty = e.Sum(q => q.Qty) }); 2.多字段分组求和: var list = data.GroupBy(g => new { g.StorageId,g.GoodsId }).Select(e => new { GoodsId = e.Key, Qty = e.Sum(q =>…
代码: System.Linq.Expressions.Expression<Func<Domain.S_ROLE, bool>> expressWhere1 = (c => c.R_NAME.Contains(keywords)); System.Linq.Expressions.Expression<Func<Domain.S_ROLE, int>> orderBy1 = c => c.R_ORDERID; Func<IQueryabl…
技术介绍: LINQ(Language Integrated Query,语言集成查询)是一组用于C#和VB.NET语言的扩展,它允许编写C#或者VB.net代码,以与查询数据库相同的方式操作内存数据.LINQ提供了丰富的类似SQL的查询语法,功能强大且容易上手.下图汇总展示了LINQ技术的官方实现集合: 正如上图所示,LINQ to Entities 是LINQ技术在实体对象模型中的一种实现,它与LINQ to SQL以及LINQ to DataSets一起构成了LINQ to ADO.Net…
LINQ中不能直接使用DateTime,否则会报错:‘The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are support’ 需要把DateTime定义在LINQ之外,例如: var now = DateTime.Now.Date; var query = from…
public class CustomDataContext<TEntity> : System.Data.Linq.DataContext where TEntity : class,new() { public CustomDataContext() : base(ConfigurationManager.AppSettings["TestDbConnectionString"]) { } #region 创建一个新对象 public bool Create(TEnti…
1.ef修改时指修改指定字段public void ChangePassword(int userId, string password) { var user = new User() { Id = userId, Password = password }; using (var db = new MyEfContextName()) { db.Users.Attach(user); db.Entry(user).Property(x => x.Password).IsModified =…
错误提示: 解决方式:换成了 linq to sql方式…
1.读取用户和部门两个表的左连接: var sg = db.Users.GroupJoin(db.Departments, u => u.DepartmentId, d => d.DepartmentId, (u,d) => new { u, d }).Select(o=>o).ToList(); 注意:上面将返回所用用户信息和对应的部门信息(即用户部门ID信息缺少,那么用户列表也会显示) 2.读取指定返回列表字段的左连接信息: var GJoinList = db.Sys_Use…
这两天一直想写一个动态查询的方式,先是晚上查询了一下,发现大家写的差不多都是一样的[如:http://www.cnblogs.com/ASPNET2008/archive/2012/10/28/2743053.html#commentform和http://www.cnblogs.com/lyj/archive/2008/03/25/1122157.html],我觉得这里不好的地方就是在查询的时候还是要知道查询的是哪一个列,然后根据这个查询的列是否为空等等的一些判断来进行动态查询的拼接, 这样一…
数据库建了一个唯一索引,使用linq to ef更新的时候,老是报,索引建冲突,,坑了我一上午,最后把索引删了…
分页: 多表关联查询: 多表操作 临时表: 存储过程式长语句 : Hibernate与iBATIS的比较 博客分类: db iBATISHibernateSQL数据结构ORM  1.出身 hibernate 是当前最流行的o/r mapping框架,它出身于sf.net,现在已经成为jboss的一部分了. ibatis 是另外一种优秀的o/r mapping框架,目前属于apache的一个子项目了. 2.原理 相对hibernate“o/r”而言,ibatis是一种“sql mapping”的o…