Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 多租户应用程序和实体框架_Entity Framework_Multi Tenant - Fatal编程技术网

Entity framework 多租户应用程序和实体框架

Entity framework 多租户应用程序和实体框架,entity-framework,multi-tenant,Entity Framework,Multi Tenant,我正在使用共享数据库和共享模式方法构建一个多租户应用程序。因此,按照这种方法,我在每个表中都有“Tenant_Id”列。那么,有没有办法在每个查询中自动附加where子句…您可以在DbContext周围使用包装器来实现这一点,并使用where子句覆盖每个实体集合 public class WrapperContext : YourDBContext { public override DbSet<YourEntitity> YourEntities { get

我正在使用共享数据库和共享模式方法构建一个多租户应用程序。因此,按照这种方法,我在每个表中都有“Tenant_Id”列。那么,有没有办法在每个查询中自动附加where子句…

您可以在
DbContext
周围使用包装器来实现这一点,并使用where子句覆盖每个实体集合

public class WrapperContext : YourDBContext
{

  public override DbSet<YourEntitity> YourEntities
  {
    get
    {
      return base.YourEntities.Where(t => t.Tenant_Id == someId);
    }
    set
    {
       base.YourEntities = value;
    }
  }      
}
公共类包装器上下文:YourDBContext
{
公共覆盖数据库集实体
{
得到
{
返回base.YourEntities.Where(t=>t.Tenant\u Id==someId);
}
设置
{
base.YourEntities=值;
}
}      
}

获取someId的最佳方式是什么?在我的例子中,一个用户可以访问多个帐户/租户,因此这意味着需要筛选我的WHERE子句。我计划在用户登录应用程序时获取授权帐户列表,然后将该列表存储到会话变量中。MVC4,实体框架5.0,SQL Server 2012。您好,我这里有一个非常类似的问题,可能会有所帮助: