我正在使用实体框架核心标识。我所有的实体都有一个名为
CreatedBy
,内置标识的外键
User
桌子。我有一个
GetAll()
API中的终结点,返回与这些实体关联的表中的所有记录。我想要这个
获取所有()
只返回当前登录用户创建的记录。I can get the
UserId
从
HttpContext
,但我想知道是否可以自动限制记录。
例如,我可以执行这样的操作来获取此行为:
return _context.Entities.Where(e => e.UserId == userIdFromHttpContext).ToList()
不过,这是一个额外的条件,我必须把每一个
Where
每一个未来的条款
Get
我写的方法。这对我来说是多余的。
我只想打个电话
return _context.Entities.ToList()
它将自动筛选出与当前登录用户无关的所有记录。
有什么我可以做的,配置某种“自动”预定义的where子句在
DbContext
这适用于上下文中的所有表,仅一次?我最好注射
请求上下文
进入
DbContex
t(我知道这是可以做到的)并在
OnConfiguring()
方法。
编辑:如果可能的话,我想避免在类的上下文周围使用包装器。这个申请表是由大学生写的,我想让他们用“香草”
Entity Framework
获取数据而不是使用某种自定义实现的约定