ORM
Linq与EF
厦门德仔
分享与交流:信息化建设、数字化转型、项目管理、流程梳理与再造、前后端开发、财务管理、数据库、网络、家庭教育与人生感悟等希望我的博客能带您愉快心情。
展开
-
【Linq】Get top 5 values with lambda Group By Id, Order By and Then select top 5 of each grouping)
【代码】【Linq】Get top 5 values with lambda Group By Id, Order By and Then select top 5 of each grouping)原创 2023-12-15 08:54:15 · 222 阅读 · 0 评论 -
[Linq] Linq如何调用外部方法?
Linq如何调用外部方法?通常我们会有这样的需求,以前写SQL会直接在自定义函数,在EF非FECORE中处理比较麻烦。那么LINQ 能否在返回匿名实体的时直接调用外部方法呢?编译通过,运行时报错!思考为何不行呢?假设方法a()var xxxs= from…;select new {b=a();}其本质应该还是返回IQueryable或IEnumerable接口。编译输出xxxs.tolist()发现是空值思路一:匿名类型无法实现构造新列并赋值,那是否可以新建一个强类型实体并预算计算列。原创 2022-04-01 08:56:04 · 448 阅读 · 0 评论 -
[Linq]C# List类型分组求和
C# List类型分组求和 List<Person> personList = new List<Person>(); Person p1 = new Person(); p1.Name = "Bob"; p1.Age = "14"; p1.Salary = 1200; personList.Add(p1);原创 2022-02-16 09:06:47 · 2222 阅读 · 0 评论 -
[Linq]使用EF To Linq执行类似sql的in语句
使用EF的时候,我们经常会遇到一些查出在xx中的数据,类似sql in查询,比如查出id为18982,18976,1978的数据我们可能会这样写var wkids = “18982,18976,1978”;var wks = CurrentRepository.GetAllQuery<Projects_WorkHour>(x=> wkids.Contains(x.WorkHour_Id.ToString()));会发现不是我们想要的结果,id为18,89,76等只要在上面id存在的原创 2022-02-16 09:04:54 · 581 阅读 · 0 评论 -
[EF]事务管理+批量删除
using (var transaction = context.Database.BeginTransaction()) { try { //删除合同主表信息 FAContract fa = GetFAContract(); context.Entry(fa).State...原创 2021-12-27 10:23:21 · 872 阅读 · 0 评论 -
[Linq]LINQ的左连接、右连接、内连接
1、左连接:var LeftJoin = from emp in ListOfEmployeesjoin dept in ListOfDepartmenton emp.DeptID equals dept.ID into JoinedEmpDeptfrom dept in JoinedEmpDept.DefaultIfEmpty()select new {EmployeeName = emp.Name,DepartmentName = dept转载 2021-03-05 10:34:34 · 1546 阅读 · 1 评论 -
[LINQ]多条件关联
多条件关联: var data = (from h in context.FT_LY join d in context.FT_LY_Detail on new { h.Company, h.LYNo } equals new { d.Company, d.LYNo } where (h.LYDate>=_DateStart) &原创 2020-05-28 13:57:05 · 788 阅读 · 0 评论 -
[EF] Any+批量新增+批量删除
private void Save() { try { using (var context = new OAContext()) { try { ...原创 2020-03-27 09:37:36 · 442 阅读 · 0 评论 -
[EF]DbEntityValidationException
[Table("Product")] public partial class Product { [Key] public int Id { get; set; } [Required(ErrorMessage = "必须指定商品名称")] public string Name { get; set; }...原创 2019-06-12 13:50:50 · 1152 阅读 · 0 评论 -
[EF]使用TransactionScope
在TransactionScope的范围中,不需要明确调用UserTransaction,即可将所有事务处理纳入相同的范围中,这适合更广泛的事务处理操作。using System.Transactions; using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))...转载 2019-06-14 14:05:16 · 974 阅读 · 0 评论 -
[EF]共享事务处理连接
不同的context对象可以通过共享连接将数据的更新操作合并在相同的事务处理范围中,参考以下的设置: KTStoreContext context_s = new KTStoreContext(context.Database.Connection , contextOwnsConnection: false);为了共享事务处理,因此调...转载 2019-06-14 13:58:42 · 426 阅读 · 0 评论 -
[EF]事务处理
EF支持事务处理操作,以下语句会获取当前DbContext对象专用的DbContextTransaction()事务处理对象DbContextTransaction transaction=context.Database.BeginTransaction();获取transaction之后,期间任何与context有关的数据操作均会纳入此事务处理的范围中,调用transaction.Com...转载 2019-06-14 13:50:13 · 2802 阅读 · 0 评论 -
[Linq]Enumerable和IEnumerator 详解
rable和IEnumerator 详解初学C#的时候,老是被IEnumerable、IEnumerator、ICollection等这样的接口弄的糊里糊涂,我觉得有必要切底的弄清楚IEnumerable和IEnumerator的本质。下面我们先看IEnumerable和IEnumerator两个接口的语法定义。其实IEnumerable接口是非常的简单,只包含一个抽象的方法GetE...原创 2013-12-18 13:43:37 · 2054 阅读 · 0 评论 -
[EF]分页处理
之前实现数据真分页,采用ADO.NET的方式,通常写一存储过程实现:ALTER procedure [dbo].[UP_SqlDataPaging]@tbName varchar(255), --表名@tbFields varchar(1000), --返回字段@OrderField varchar(255), --排序的字段名@PageSize int, ...原创 2019-04-30 10:26:40 · 2193 阅读 · 0 评论 -
[Linq]Linq/EF中使用函数
通常我们在写SQL经常会调用系统函数。在Linq/ef中对应使用DbFunctions.DbFunctions.DiffMonths()方法``作为 LINQ to Entities 查询的一部分使用时,此方法调用规范 DiffMonthsEDM 函数以计算两个日期/时间间隔的月数C# var exportDetails = from e in context.Expo...原创 2019-05-15 08:47:17 · 823 阅读 · 0 评论 -
[EF]Include
1.Join(),两表不必含有外键关系,需要代码手动指定连接外键相等(具有可拓展性,除了值相等,还能指定是>,<以及其他对两表的相应键的关系),以及结果字段。重载方式(是扩展方法,第一个参数带this,代表自身):1.public static IQueryable<TResult> Join<TOuter, TInner, TKey, TResult>(t...原创 2019-05-23 13:56:37 · 3333 阅读 · 0 评论 -
[EF] Table Per Type(TPT)
Table per Type(TPT,每一种类型一张表)通过类型基础建立数据实体对应关联数据表的外键,与TPH不同德地方在于,每一个数据类型均对应到独立的数据表,数据表彼此形成关联的外键就形成彼此间的集成关系。namespace TPTDemo.Model{ [Table("Product")] public class Product { public...原创 2019-05-24 10:18:09 · 472 阅读 · 0 评论 -
[EF]执行SQL语句
//using System.Data.Entity.Infrastructure; using (var context = new KTStoreContext()) { try { String sql = "SELECT * FROM Product ";...原创 2019-06-12 14:15:16 · 736 阅读 · 0 评论 -
[EF]使用参数
using (var context = new KTStoreContext()) { // object[] parameters = { 8, "%移动%" }; SqlParameter P0 = new SqlParameter("P0", 8); ...原创 2019-06-12 14:24:47 · 571 阅读 · 0 评论 -
[EF]直接调用存储过程
CodeFisrt using (var context= new KTStoreContext()){ //string sp = "ProductList"; //List<Product> products = // context.Products....原创 2019-06-13 09:43:14 · 1082 阅读 · 0 评论 -
[EF]获取返回值
当存储过程包含输出参数时,可以进一步传入out形式的SqlParameter对象以获取输出参数,参考以下的存储过程:CREATE PROCEDURE [dbo].[SetSPriceById] @P1 int = 0 , @P2 int = 0 , @P3 int = 0 , @P4 int OUTAS UPDATE Product SET SPrice = @P1 WHERE I...转载 2019-06-13 09:48:04 · 792 阅读 · 0 评论 -
[Linq]泛型
买了一本书 LINQ从基础到项目实践。记录只为督促自己学习过程 【摘要】C#2.0 语言在很多方面扩充了原有的C#1.0的语言,提出了泛型,匿名方法的概念,使用泛型可以定义带有一个或者多个类型参数的方法或类。泛型是LINQ技术实现的基石。我们以取两数取小的函数为列;int Min (int a,int b){ if(a<b) retur...原创 2013-12-06 10:04:34 · 1588 阅读 · 0 评论