Linq笔记_DbNull

2018/04/27 DotNetCore 共 846 字,约 3 分钟

工作内容的临时备忘,Linq代码片段。给予局部变量,数据库DbNull值直接在代码里面初始化为类型默认值。

image-20220105155033557

上面的代码仍然还是无法解决DbNull无法转为int类型的报错问题,直接.Value即可。

EF.Functions扩展方法

时间差的计算方法,在EF.Functions里面有一系列的扩展方法,对于计算时间比较管用。常用的还有Like,用来做前后匹配,实现原生SQL中Like语句的功能。

image-20220310232910508

动态拼接Linq_LinqKit and PredicateBuilder

复杂的Linq查询,用于报表动态生成的时候,可以参考这个扩展插件:

https://github.com/scottksmith95/LINQKit#predicatebuilder

参考文章:https://mitchelsellers.com/blog/article/using-predicatebuilder-with-ef-core-for-complex-queries

image-20220311020210219

image-20220311020700567

image-20220311021200641

LinqKit构建动态Where语句

可以使用Predicate动态拼接Linq条件生成类似如下场景的报表。字段是动态的,条件也是动态的。

https://stackoverflow.com/questions/28575879/dynamic-column-in-where-condition

参考文章:

http://www.albahari.com/nutshell/predicatebuilder.aspx

https://www.codeproject.com/Tips/582450/Build-Where-Clause-Dynamically-in-Linq

image-20220311024725366

上面的场景,可以参考:https://stackoverflow.com/questions/14621450/dynamic-where-clause-or-in-linq-to-entities

image-20220311025426955

其实上面的筛选维度都是一种动态拼接sql的过程,使用LINQKit’s更容易开发和维护。

文档信息

Search

    Table of Contents