C# 实体框架数据库优先-向模型动态添加表

C# 实体框架数据库优先-向模型动态添加表,c#,entity-framework-6,ef-database-first,C#,Entity Framework 6,Ef Database First,我有相同结构的表,但每个表都有字母前缀 例如: A_Company, B_Company, C_Company 有一个组合框,用户可以从中选择A、B或C,然后代码将数据保存到相应的表中 如何首先使用EF数据库实现这一点?正如其他评论员所说,将数据库重构为单个表会更好。如果你不能做到这一点,那么我唯一能想到的另一件事就是让一个类为你选择表格 我将创建一个新类,该类具有与贵公司表相同的属性,并且还具有描述符属性。然后,它将被用作ui的数据源 在这个类中,您必须手动编写代码,根据鉴别器的值从正确的实

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

例如:

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


如何首先使用EF数据库实现这一点?

正如其他评论员所说,将数据库重构为单个表会更好。如果你不能做到这一点,那么我唯一能想到的另一件事就是让一个类为你选择表格

我将创建一个新类,该类具有与贵公司表相同的属性,并且还具有描述符属性。然后,它将被用作ui的数据源

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

有可能让所有的基表都从一个虚拟基类继承,这会有所帮助—然后您可以创建一个字典,基类可以使用它动态切换最终的数据源

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

  • 按照建议创建主表,然后在使用前的某个时间使用代码从该主表创建各个表

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

    表中的字段是否相同?是的,完全相同这似乎不是一种正确的方法。如果它们都有相似的结构,为什么不将记录保存到一个表中呢?只需根据组合框选择添加一些要区分的属性。这样做有一些原因。您应该选择一个表并在表上添加鉴别器。您使用的方法不正确。感谢所有人的帮助。我解决了这个问题,在我的基础表company上添加了一列代码前缀和触发器,用于插入更新和删除。