工作内容的临时备忘,Linq代码片段。给予局部变量,数据库DbNull值直接在代码里面初始化为类型默认值。
上面的代码仍然还是无法解决DbNull无法转为int类型的报错问题,直接.Value即可。
EF.Functions扩展方法
时间差的计算方法,在EF.Functions里面有一系列的扩展方法,对于计算时间比较管用。常用的还有Like,用来做前后匹配,实现原生SQL中Like语句的功能。
动态拼接Linq_LinqKit and PredicateBuilder
复杂的Linq查询,用于报表动态生成的时候,可以参考这个扩展插件:
https://github.com/scottksmith95/LINQKit#predicatebuilder
参考文章:https://mitchelsellers.com/blog/article/using-predicatebuilder-with-ef-core-for-complex-queries
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
上面的场景,可以参考:https://stackoverflow.com/questions/14621450/dynamic-where-clause-or-in-linq-to-entities
其实上面的筛选维度都是一种动态拼接sql的过程,使用LINQKit’s更容易开发和维护。
文档信息
- 本文作者:hillcat
- 本文链接:https://cs-cn.top/2018/04/27/Linq_EF.Functions/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)