Entity Framework Core踩坑实例分析
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍"Entity Framework Core踩坑实例分析",在日常操作中,相信很多人在Entity Framework Core踩坑实例分析问题上存在疑惑,小编查阅了各式资料,整理出简
千家信息网最后更新 2025年12月03日Entity Framework Core踩坑实例分析
这篇文章主要介绍"Entity Framework Core踩坑实例分析",在日常操作中,相信很多人在Entity Framework Core踩坑实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Entity Framework Core踩坑实例分析"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
请大家审阅以下代码的区别
[Route("/crmorders/gettomonthtotal")]public string GetOrdersToMonthTotal(string monStr, string sdept,int page=1,int limit= 20){using (var db = new hibiContext()){var dateMonthFD = monStr.ToDateTime().GetMonthFirstDay();var dateMonthLD = monStr.ToDateTime().GetMonthLastDay();//获取数据集的总条数var count = db.BivCrmProdordersOri.Count();//linq表达式的正确写法var dataLinq01 = (from o in db.BivCrmProdordersOriwhere o.DictDtlNameBus == sdept && o.AcceptDate >= dateMonthFD && o.AcceptDate <= dateMonthLDorderby o.AcceptDateselect o).Skip((page - 1) * limit).Take(limit).ToList();//linq表达式的错误写法var dataLinq02 = (from o in db.BivCrmProdordersOriwhere o.DictDtlNameBus == sdept && o.AcceptDate.Value.ToString("yyyy-MM") == monStrorderby o.AcceptDateselect o).Skip((page - 1) * limit).Take(limit).ToList();//lambda表达式的正确写法var dataLambda01 = db.BivCrmProdordersOri.Where(o => o.DictDtlNameBus == sdept && o.AcceptDate >= dateMonthFD && o.AcceptDate <= dateMonthLD).OrderByDescending(o => o.AcceptDate).Skip((page - 1) * limit).Take(limit).Select(o=>o).ToList();//lambda表达式的错误写法var dataLambda02 = db.BivCrmProdordersOri.Where(o => o.DictDtlNameBus == sdept && o.AcceptDate.Value.ToString("yyyy-MM") == monStr).OrderByDescending(o => o.AcceptDate).Skip((page - 1) * limit).Take(limit).Select(o => o).ToList();var ret = new { code = 0, msg = "", count = count, data = data3};var json = Newtonsoft.Json.JsonConvert.SerializeObject(ret);return json;}}
以前使用linq和lambda表达式的时候,习惯性的会把集合对象的熟悉,格式化成目标格式后再和参数做比较,来进行过滤。
测试了ef的写法后,发现ef在生成sql时并不支持对linq和lambda这种表达式的翻译。
其实通过思考也能明白,在对字段进行格式化的时候,ef生成sql过程中肯定会调用数据库函数来进行这部分翻译,实际上本身这种where条件的写法是牺牲性能的。
更应该建议使用下列值类型比较的方法来达到目的。
或者,可以将datetime字段从数据库中直接转成string类型,再进行筛选,还可以借助数据库索引提升性能。
到此,关于"Entity Framework Core踩坑实例分析"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
写法
表达式
实例
实例分析
分析
数据
学习
数据库
格式
字段
性能
方法
时候
更多
类型
错误
帮助
生成
实用
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
背包服务器补丁怎么添加
西安上位机软件开发
软件开发cc节点是什么意思
要 积极发展网络安全产业
mysql数据库连接代码
汕尾调度服务器批发
微灵网络技术有限公司
domcer服务器好用吗
网络安全36号文全称
学习数据库可以从事什么行业
公司的数据库突然坏了全是套路
东北大学数据库实验室
数据库像saas
ps4 多服务器
网络安全工作总体方针
炉石传说有哪些服务器
俄罗斯网络安全管理
学硬件学什么软件开发
网络安全结课论文2000字
合肥监狱网络安全管理
数据库服务器名称取消实例名称
江阴个体执照代办网络技术工作室
产品类软件开发
网络安全感怎么保护
软件开发费摊销多少年
sci数据库即
阿里未来网络安全
网络安全法》的立法方针是
进口服务器机柜厂家
手机如何外网登录ftp服务器