gpt4 book ai didi

c# - 多表同款

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:51 24 4
gpt4 key购买 nike

我有一个类,假设它叫做 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。

最佳答案

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

编辑:

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

关于c# - 多表同款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com