C# 实体框架:如何为同一实体使用多表?

C# 实体框架:如何为同一实体使用多表?,c#,database,entity-framework,model,C#,Database,Entity Framework,Model,我的情况如下。我使用的是实体框架(4.0),我在其中定义了一个相对简单的模型,比如说,两个实体: 使用者 交易 在此场景中,用户可以有多个事务。在生成数据库时,这将(显然)导致两个数据库表名为“user”和“transaction” 问题是,我想将代码用作Web服务,不同的公司应该有自己的环境(阅读:自己的用户和事务)。一个简单的解决方案是在两个表中都添加一列,比如说“company_id”,以从companyb的用户/事务中识别companya的一个用户/事务 我想要的是复制以下表格:

我的情况如下。我使用的是实体框架(4.0),我在其中定义了一个相对简单的模型,比如说,两个实体:

  • 使用者
  • 交易
在此场景中,用户可以有多个事务。在生成数据库时,这将(显然)导致两个数据库表名为“user”和“transaction”

问题是,我想将代码用作Web服务,不同的公司应该有自己的环境(阅读:自己的用户和事务)。一个简单的解决方案是在两个表中都添加一列,比如说“company_id”,以从companyb的用户/事务中识别companya的一个用户/事务

我想要的是复制以下表格:

  • compa_用户
  • compa_交易
  • compb_用户
  • 康普交易
这样,所有数据都会很好地分离,如果公司a生成大量事务,公司b不会注意到系统速度变慢或其他任何情况

我的问题是:是否有一种基于实体框架的方法来实现这一点。因此,我可以拥有多个表来表示模型中的一个实体,并根据连接到服务的公司从一个表切换到另一个表


感谢您的帮助

如果您真的想保持表的独立性,那么为每个客户机创建一个独立的数据库将是最简单的-只需更改EF中的连接字符串即可


这种模式(独立数据库)的另一个好处是,如果数据库成为瓶颈,理论上每个数据库都可以位于不同的数据库服务器上,因此数据库将很容易扩展。

我也想到了这一点。在创建服务实例(或建立链接)时,根据连接字符串创建数据上下文。也许我可以在创建上下文之前更改connectionstring,但它似乎有点讨厌。尽管如此……这是一种方法,但我宁愿使用多表选项,但如果找不到解决方案,我将尝试您的解决方案。谢谢或许这将有助于: