多个表中的相同模型

时间:2012-05-11 21:19:21

标签: c# entity-framework

我有一个类,假设它被称为EntityModel,我希望使用相同的列创建三个不同的表,如EntityModel中所定义。我们称之为tbPasttbPresenttbFuture。我还希望在实体DbContext中单独访问它们:

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

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

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

我正在使用Entity Framework,使用Code First方法,以及ASP.NET MVC 3。

1 个答案:

答案 0 :(得分:1)

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

修改

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