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 =>…
http://www.cnblogs.com/ASPNET2008/archive/2012/10/27/2742434.html 最近一年的项目,我主要负责一些小型项目(就是指企业内部的小项目),在数据库操作方面我们采用了以开发速度快为特点的Linq to Entity,这里我不多讲它的使用方法,先来分享下我认为还不错的几个地方:        1:某种情况下可以完全代替传统SQL开发      这里是指比较简单的数据库处理,比如查询,几个表关联查询及添加数据,更新数据,删除数据等,不包含特别…
本篇继续LINQ Operators的介绍,这里要讨论的是LINQ中的排序和分组功能.LINQ的排序操作符有:OrderBy, OrderByDescending, ThenBy, 和ThenByDescending,他们返回input sequence的排序版本.分组操作符GroupBy把一个平展的输入sequence进行分组存放到输出sequence中. 排序/Ordering IEnumerable<TSource>→IOrderedEnumerable<TSource> O…
回到目录 对于从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()…
之前一直用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 Entity 的時候,會把之前 Linq to SQL 的想法就帶進去,寫好之後編譯也都不會出錯,但是實際上在跑的時候就會出現錯誤訊息了,這點真的要注意了.這次我遇到問題的時候就是時間相減的時候發生 的,希望本篇對於遇到問題的朋友有點幫助囉! 說明 先看看測試資料表的結構 接下來建立一個 Entity ,這部份就不多加解釋怎麼建 Entity 了. 現在我想查出結束時間和起始時間差距一天以上的資料,很自然的寫出下面的程式碼: C# var data = db.Tes…
最近工作中遇到数据库组合查询带来的一些问题,因此有必要调研一下Linq to Objects Join Linq to Entity.参考一些网友的代码案例,深入实践了一下使用EntityFramework Code First 下的组合查询. 准备环节: (一) 在VS下创建一个控制台应用程序(LinqToObjectJoinEntity),定义一个MyObject类,如下: public class MyObject { public int Identity { get; set; } p…
技术介绍: 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 to sql方式…
在开始了解LINQ to Entities之前,需要先对.NET Framework 3.5版本后对C#语言的几个扩展特性做一些阐释,这有助于我们更容易.更深刻的理解LINQ to Entities技术的原理与实现. 一.隐式实例化局部变量 .NET Framework 3.5后,实例化局部变量语法有了新的选择:使用“var”关键字隐式类型化: var user = new User(); 隐式类型化语法与Javascript语言里声明变量的语法类似,它可以一定程度上简化实例化局部变量的语法.但…
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…
左连右连还是内连这个其实你不需要关心.只需要根据实体的映射关系写查询,框架会自动帮你生成的. 至于linq查询语法与扩展方法的效率,应该是一样的,比如: var users=(from u in db.Users where u.UserRoleId==1 select u) .ToList();  var users2=db.Users.Where(u=>u.UserRoleId==1).ToList(); 这两句查询实际上是等效的. inner join:  var =from x in d…
public class CustomDataContext<TEntity> : System.Data.Linq.DataContext where TEntity : class,new() { public CustomDataContext() : base(ConfigurationManager.AppSettings["TestDbConnectionString"]) { } #region 创建一个新对象 public bool Create(TEnti…
-之动态查询,查询逻辑封装复用 基于领域驱动设计(DDD)超轻量级快速开发架构详细介绍请看 https://www.cnblogs.com/neozhu/p/13174234.html 需求 配合EasyUI datagird filter实现多字段(任意字段)的筛选 根据业务需求筛选特定的状态或条件,如:查看结案的订单,最近30天的订单,查看属于我的订单.等等,这些逻辑是固定也是可以被重用,但又不想每次写相同的条件,那么下面我会给我的解决方案. 需求1只是一个偷懒的实现方式,因为datagri…
这两天一直想写一个动态查询的方式,先是晚上查询了一下,发现大家写的差不多都是一样的[如: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更新的时候,老是报,索引建冲突,,坑了我一上午,最后把索引删了…
1.在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类型的字段,就会报响应的扩展方法无法自动推断参数类型的问题(比如:我用的是groupjoin扩展方法), 如果进行了常规的类型转换,比如将int字段对应的转换为string(ToString方法),这时编译的时候不会有问题了. 但是在运行的时候会报如下错误: LINQ to Entities 不识别方…
网上收集的资源  我怕遗忘就在自己博客记录下,有些我忘记原文地址了请见谅 这个链接的动态sql方式是 where("c=>c.id==id") https://weblogs.asp.net/scottgu/dynamic-linq-part-1-using-the-linq-dynamic-query-library 还有一种方式  必须需要实体类的  但是需要注意的是  需要LinqKit.dll并且在  where条件前加上.AsExpandable(). public s…
根据某属性去重 使用第三方库: https://github.com/morelinq/MoreLINQ Install-Package morelinq -Version 3.0.0 data.DistinctBy(x=>x.Id) 实现left join 使用DefaultIfEmpty(),是left join 没有DefaultIfEmpty(),是inner join var query2 = ( from users in Repo.T_Benutzer from mappings…
1.Linq查询 2.数据库事例: 3.效果图:…
按A-Z顺序分组展示 有些项目中会需要这样的需求.形成类似于上述的界面.类似于通讯录里边的排序.实现的效果:所有的数据展示的时候,能够分组展示.顺序按照A-Z的书序进行排列.如果不是以A-Z开头,则默认为#一列. 一般我们从服务器拿到的数据都是一个数组.里边包含了所有的数据. 思路:思路很重要!!! 我的思路详解:首先界面的话 1.需要组的名称.组的名称就是这些数据的首字母.所以说这里需要一个数组,来存储这个组的名字.sortedSectionTitles 2.就是每一组下边的数据的排序了.针对…
一.聚合函数查询 ; using (xxxEntities db = new xxxEntities()) { sum = db.userinfo.AsNoTracking().Where(d => d.id==id).Sum(m => (double?)m.money).GetValueOrDefault(); } return sum; 二.删除操作 ; ) { using (gghdbEntities db = new gghdbEntities()) { var data = db.q…
当使用 from m in _db.students从数据库中获取数据时,数据库中的数据类型和C#中的不同,所以可能会出错!先作_db.students.ToList()然后select…
IEnumerable<InspecReportsContextEntity> OnenewDate = lisConAll.Where(p => p.inspectime == timer1.Text);/ int countNum = OnenewDate.ToList<InspecReportsContextEntity>().Count;//获取list集合总数…
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…
from emp in EmployeeInfo let years = EntityFunctions.DiffYears(emp.Birthday.Value,DateTime.Now) let birthdayThisYear = EntityFunctions.AddYears(emp.Birthday.Value,years) select new { Age = birthdayThisYear > DateTime.Now ? years - : years }…