你的位置:首页 > 软件开发 > ASP.net > 实体框架高级应用之动态过滤 EntityFramework DynamicFilters

实体框架高级应用之动态过滤 EntityFramework DynamicFilters

发布时间:2015-09-22 00:00:04
实体框架高级应用之动态过滤 EntityFramework DynamicFilters我们开门见山,直奔主题。 一、EntityFramework DynamicFilters 是什么,它能做什么?  EntityFramework DynamicFilters是一个开源项 ...

实体框架高级应用之动态过滤 EntityFramework DynamicFilters

实体框架高级应用之动态过滤 EntityFramework DynamicFilters

我们开门见山,直奔主题。

 

一、EntityFramework DynamicFilters 是什么,它能做什么?

  EntityFramework DynamicFilters是一个开源项目。你可以到这里去下载它的源码。顾名思义,它为我们做的事,就是帮我们动态过滤数据。为了照顾初学者,我们从头道来。

  1、何为数据过滤?

     数据过滤说简单点,就是去掉我们不想要的数据。SQL语句中的where从句,Linq中的where从句,还有扩展方法Where,就是完成这件光荣任务的。

 

  2、何为动态?

    动态的意思就是不死板地应用我们所写的条件,比如,我们在一个地方写了where从句,它只能用于这次查询,下次遇到相似的情况时,我们还得老老实实的写 where xxx=xxx。很长的一段时间,我们一直这样,很和谐地使用着这种方法。突然有一天,抓了抓头:如果类似的情况,能自动加上相应的过虑条件,或是应用相应的规则,该有多好?于是就有动态。当然这里的动态,只是我们面对问题的一个方面。

 

  3、废话半天,它到底能做什么,具体点,好不?

    它可以为我们创建全局的,针对实体框架查询的过虑器,这些过滤器会自动应用于每一个查询。能被用于支持多租户,软删除,等等。过滤器能通过返回布尔类型的Linq表达式来创建,同时还支持Contains()操作符(方法)。目前支持的数据库有MS SQL Server(包含 Azure),MySql,Oracle。

 

二、 没有它时,我们是怎么做的?

  我们以软删除(不是真正意义上的删除数据,只是在相应的记录上作一个删除标识)为例。正因为数据没有被真正地删除,只是被我们用一个标识给标记起来了,那么,我们就得在每一个查询的地方加上一个条件(过滤掉标记为删除的数据),代码可能长成这样:

1 var blogs = context.BlogEntries.Where(b => b.IsDeleted == false).ToList();

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:实体框架高级应用之动态过滤 EntityFramework DynamicFilters

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录