C# 不同的Scehma数据库实体框架遗留系统

C# 不同的Scehma数据库实体框架遗留系统,c#,database,entity-framework,database-schema,C#,Database,Entity Framework,Database Schema,我一直在为遗留系统构建一个新的定制WPF应用程序。一个月后,我得到了一个更大的数据库进行测试,我很惊讶这个模式与上一个给我的不同。然后,我的客户告诉我,他在他们的客户机上部署了100个数据库,每个数据库的模式略有不同 我使用的是实体框架6.1,当表处理查询时,它似乎要求表中的列数相同。例如: 旧数据库中的“我的用户”表具有(可为null的)“ForgottenPass”字段,而在新数据库中,它不存在。实体框架抛出一个异常,即未找到列“ForgottenPass”。我只有8个表可以工作,但是在10

我一直在为遗留系统构建一个新的定制WPF应用程序。一个月后,我得到了一个更大的数据库进行测试,我很惊讶这个模式与上一个给我的不同。然后,我的客户告诉我,他在他们的客户机上部署了100个数据库,每个数据库的模式略有不同

我使用的是实体框架6.1,当表处理查询时,它似乎要求表中的列数相同。例如: 旧数据库中的“我的用户”表具有(可为null的)“ForgottenPass”字段,而在新数据库中,它不存在。实体框架抛出一个异常,即未找到列“ForgottenPass”。我只有8个表可以工作,但是在100个数据库中,这些表可以有不同的列数。好的是在这8个表中,我有固定数量的列要处理,但我必须对表执行CRUD操作


任何关于我如何仍然使用EntityFramework的帮助都将是一个很大的帮助。

您需要关心额外的列吗?如果答案是肯定的,为什么?我的意思是,如果删除一行,列中的内容是否重要?如果更新固定列,是否需要更新额外的列?如果要插入新行,那么这些额外列的默认值不会考虑应该包含哪些内容吗?如果存在它不知道的列,EF不会导致任何错误,但如果缺少它具有映射属性的列,它将生成无效SQL。您将只能使用可以保证会存在的列和表。感谢您只保留我需要的列,这很有意义。但现在的问题是,有一列“teamid”不是空的,也没有任何默认值,它在数据库中有不同的数据类型(小Int和Int)。我可以让我的EF忽略数据类型并继续工作吗。问题是我没有使用该列,但我需要将它放在我的edmx上,因为它不是空的。我记得在ADO.Net中,我们使用enableConstraints=false,它跳过了这些模式匹配,有没有跳过EF中的数据类型的方法?