实体框架数据库优先 - 动态地将表添加到模型

时间:2017-12-10 13:40:42

标签: c# entity-framework-6 ef-database-first

我的表具有相同的结构,但每个表都有一个字母前缀。

例如:

A_Company, B_Company, C_Company

有一个组合框,用户可以从中选择A,B或C,然后代码将数据保存到相应的表中。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

正如其他评论者所说,将数据库重构为单个表会好得多。如果你不能这样做,那么我能想到的另一件事就是找一个能为你选择桌子的课。

我会创建一个新的类,它具有与公司表相同的属性,并且还具有descriminator属性。然后,这将用作您的UI的数据源。

在这个类中,您必须手动编码以根据鉴别器的值从正确的实际表中绘制数据(并保存到它)。如果只有几个表,这很好,但随着你的相同表的数量变大,这将变得更加令人头痛。

有可能让基表全部继承自虚拟基类,这有点帮助 - 然后您可以创建一个基类可以用来动态切换最终数据源的字典。

最后的想法是你考虑过: 1.按照其他评论员的建议将主表创建为单个表,然后为每个公司创建视图。

  1. 按照建议创建主表,然后让代码在使用之前的某个时刻从那个表创建单个表?
相关问题