2

我有一个类,假设它被称为EntityModel,并且我想创建三个具有相同列的不同表,如EntityModel. 让我们称表tbPast和。我还想在 Entity 中单独访问它们:tbPresenttbFutureDbContext

using (var db = new MyContext())
{
    var element = db.Past.Find(id);
    db.Past.Remove(element);
    db.Present.Add(element);
    db.SaveChanges();
}

三张表的主要目的是性能:表会有几百万行,最重要的是Present,有几十行。大多数查询将在Present表中进行。

做这个的最好方式是什么?实现三个具有相同属性的模型似乎不适合我。

我正在使用实体框架、代码优先方法以及 ASP.NET MVC 3。

4

1 回答 1

1

您不能使用相同的模型来生成带有 EF 代码优先的单独表。如果您需要进行某种分组,请使用一个Discriminator字段并为其分配任何值:Past Present Future.

编辑:

类似的效果可以通过table-per-concrete 类型继承来实现。因此,每种类型都有自己的表,并且可以共享大部分(如果不是全部)字段。

于 2012-05-11T21:27:27.147 回答