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

时间:2011-09-21 14:28:15

标签: c# database entity-framework model

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

  • 用户
  • 交易

在此方案中,用户可以拥有多个交易。在生成数据库时,这显然会导致2个数据库表中的'user'和'transaction'。

问题在于我想将代码用作Web服务,其中不同的公司应该拥有自己的环境(读取:自己的用户和事务)。一个简单的解决方案是向两个表添加一个列,比如说'company_id'来识别来自companyb的用户/事务的公司a的一个用户/事务。

我想要的是像这样复制表格:

  • compa_user
  • compa_transaction
  • compb_user
  • compb_transaction

这种方式......所有数据都会很好地分开,如果公司a产生大量交易,公司b就不会注意到系统变得很慢或者无论如何。

我的问题:有没有办法在实体框架的基础上实现这一目标。那么,我可以在模型中有多个表代表一个实体,并根据哪个公司连接到服务从一个表切换到另一个表。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

如果你真的想保持表格分离,那么每个客户端的单独数据库将是最简单的 - 只需要更改EF中的连接字符串。

此模型的另一个好处(单独的数据库)是数据库可以很容易地扩展,因为如果数据库成为瓶颈,理论上每个数据库都可以在不同的数据库服务器上。