每个用户的实体框架多租户

时间:2021-01-17 08:49:12

标签: c# entity-framework asp.net-core entity-framework-core multi-tenant

我已经通过实体框架核心(共享架构、共享数据库)应用了多租户 以及存储在http Context请求中的tenantId,用户登录后会解析 但大多数时候租户 ID 不会随着不同的登录用户而改变

我的桌子:

m_tree.SetItem(this->GetRootItem(), TVIF_IMAGE, NULL, 2,2,0,0,0);

我的数据库上下文

public class Blog
{ 
    private int _tenantId;  

    public int BlogId { get; set; }
    public string Name { get; set; }
    public string Url { get; set; } 
    public List<Post> Posts { get; set; }
}

}

1 个答案:

答案 0 :(得分:0)

你有一个错误。您在 Blog 类中定义了 _tenantId 但试图在 AccountsTransactions 类中使用它。应该是这样的:

 modelBuilder.Entity<Blog>().HasQueryFilter(p=>p._tenantId == this.tenantId);

但我很惊讶您如何在“ p._tenantId”中访问私有 _tenandId ?

如果您将属性定义为私有,则应使用以下语法:

modelBuilder.Entity<Blog>().HasQueryFilter(p => EF.Property<int>(p, "_tenantId") == this.tenantId);