gpt4 book ai didi

c# - 如何在运行时在 Entity Framework Core 中真正定位表

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

我有 KPI 表,现在它有超过 5 亿行。我想将此表拆分为 KPI_Year2011KPI_Year2012...KPI_2020(将于 2020 年 1 月 1 日创建)。

PS:所有表的结构相同,实体类型为KPI

你会如何在运行时像这样定位表

public IActionResult GetKpis(int year) {
/*var kpis = context.KPI.where(k => k.year == year).ToList(); */
var kpis = context.SetTargetTable($"KPI_Year{year}").ToList();
return View(kpis);
}

最佳答案

从逻辑上讲,对于您和您的程序来说,它就是一张大 table 。事实上,数据库需要将其拆分为多个较小的数据库以加快访问速度,这与您无关。

这称为分区,实际上应该是数据库的工作。

例如:

Partitioning in SQL Server

Partitioning in Oracle

Partitioning in Postgres

Partitioning in MariaDB

您可以在您的程序逻辑中手动实现它,但这意味着您需要重新发明轮子。事实上,可能是一个更破旧、更细小的轮子,它更容易破损,而且不适合你汽车的其他部分。

一旦将此工作留给数据库,您的问题就有了解决方案:什么都不做。您的程序甚至不知道它是数据库中的多个表。这是一个分区表。

关于c# - 如何在运行时在 Entity Framework Core 中真正定位表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57356188/

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