Entity Framework 数据库优先 - 动态添加 table 到模型

Entity Framework database-first - dynamically adding table to model

我有 table 个具有相同结构但每个 table 的字母前缀。

例如:

A_Company, B_Company, C_Company

有组合框,用户可以从中select A、B 或C,然后代码将数据保存到适当的table。

如何使用 EF 数据库优先来执行此操作?

正如其他评论者所说,将数据库重构为单个 table 会好得多。如果你做不到,那么我能想到的唯一另一件事就是有一个 class,它将 select 为你 table。

我会创建一个新的 class,它具有与贵公司 table 相同的属性,并且还具有描述符 属性。这将用作您 ui 的数据源。

在此 class 中,您必须手动编码以根据鉴别器的值从正确的实际 table 中提取数据(并保存到其中)。如果您只有几个 table,这很好,但是随着相同 table 的数量增加,这将变得更加令人头疼。

有可能让基 table 全部继承自虚拟基 class,这会有所帮助 - 然后您可以创建一个字典,其中基 class可以用于动态切换最终数据源。

作为最后的想法,您是否考虑过: 1. 按照其他评论员的建议创建主 table 作为单个 table 然后对每个公司都有意见。

  1. 按照建议创建主 table,然后使用代码在使用之前的某个时刻从主 table 中创建个人 table?

我解决了这个问题,在我的基础 table 公司添加代码前缀和触发器列以插入更新和删除。