【发布时间】:2018-11-10 15:58:35
【问题描述】:
我有一个名为“ReadOnly”的具有布尔属性的实体,该属性的值取决于哪个用户正在使用该应用程序。
在 DbContext 中,我配置了要忽略的属性。
public class MyDbContext : DbContext
{
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Entity>().Ignore(e => e.ReadOnly);
}
}
如何设置运行时计算的正确值,以免每次都提醒计算属性?
编辑:我在想类似的东西
int loggedUserId = HttpSession.UserId;
modelBuilder.Entity<Entity>().Property(e => e.ReadOnly).Value = loggedUserId > 5;
这样,我始终根据登录到应用程序的用户获得正确的值。
【问题讨论】:
-
对不起,我不明白。您能否详细说明您真正想要实现的目标。
-
您必须在每个进入的请求上设置属性。
-
我的应用程序是一个微服务,MyDbContext 是在每个请求上创建的,所以我可以为每个请求设置属性,但我不知道该怎么做
-
Onmodelcreating 不会根据请求进行
-
你是对的,我的意思是,loggedUserId 可以在每个请求上检索,例如多租户全局过滤器。gunnarpeipman.com/net/ef-core-global-query-filters
标签: c# .net-core ef-core-2.0