实体框架6过滤您访问的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实体框架6过滤您访问的数据相关的知识,希望对你有一定的参考价值。
我有一个访问用户和他们的一些权限的应用程序。这些存储在其他应用程序使用的表中,因此更改与其他应用程序相关的任何内容将是灾难性的。例如,如果我说“用户X的权限是我的应用程序上的R / W”我不希望用户X的其他应用程序权限消失。
有没有办法以这种方式过滤事物?
伪数据
- 权限1:UserX,ReadRight,Application
- 权限2:UserY,WriteRight,Application
- 权限3:UserX,WriteRight,Application
- 权限4:用户,读写,应用程序
应用程序A,伪代码
UserX.Permission = [ { WriteRight, ApplicationA }, { WriteRight, ApplicationA } ]
Save UserX
产生的伪数据
- 权限1:UserX,ReadRight,ApplicationA - 酷,我的意思是
- 权限5:UserX,WriteRight,ApplicationA - 酷,我的意思是
- 权限2:UserY,WriteRight,Application
- 权限3:UserX,WriteRight,ApplicationB - 糟糕!我不是故意删除它。
- 权限4:UserX,ReadRight,ApplicationB - 糟糕!我不是故意删除它。
注意:
Application / User / Permission的业务性质不相关,也可能是Tree / Farmer / Fruit(如果我设置了树的果实数量,它有5个,这并不意味着Farmer只有5个水果)
答案
免责声明:我是EntityFramework.DynamicFilters的所有者
此库允许您过滤特定用户的数据。
modelBuilder.Filter("NotesForCompany", (Note n, int orgID) => n.Person.OrganizationID==orgID, (MyContext ctx) => ctx.CurrentOrganizationID);
modelBuilder.EnableFilter("UserOrg", (MyContext ctx) => !ctx.UserIsAdmin);
以上是关于实体框架6过滤您访问的数据的主要内容,如果未能解决你的问题,请参考以下文章