我有一个带有特定表的遗留数据库——我称之为 ItemTable——它可以有数十亿行数据。为了克服数据库限制,我们决定在行数达到 100,000,000 时将表拆分为“孤岛”。所以,ItemTable 会存在,然后会在半夜运行一个程序来检查行数。如果 numberOfRows > 100,000,000 则将创建 silo1_ItemTable。从现在开始添加到数据库中的任何项目都将添加到 silo1_ItemTable (直到它变大,然后 silo2_ItemTable 将存在......)
ItemTable 和 silo1_ItemTable 可以映射到同一个 Item 实体,因为表结构是相同的,但我不确定如何在运行时设置此映射,或者如何为我的查询指定表名。所有插入都应该添加到最新的 siloX_ItemTable 中,并且所有 Reads 都应该来自指定的 siloX_ItemTable。
我有一个单独的 siloTracker 表,它将为我提供用于插入/读取数据的表名,但我不确定如何将它与实体框架一起使用......
想法?