实体框架和动态模式

use*_*894 5 c# sql-server entity-framework

我继承了一个与许多不同客户端数据库对话的应用程序.

客户端数据库中的大多数这些表具有相同的模式 - 但是有一些表具有包含税务信息的额外自定义列(是的 - 糟糕的想法 - 我知道......我没有设置它).

这些额外的列可以命名为任何名称.它们在运行时是已知的,因为它们可以在另一个表中查找.

我可以设置EF,它将读取/写入这些表(跳过动态列),但我确实需要这些信息 - 因为它是税务数据.

我认为我的最佳路线是添加额外属性的固定模型,可以通过这些动态列填充.

如何在不使用每次调用的自定义SQL语句的情况下让Entity Framework动态读取和写入这些列?

我可以做额外的读写操作来分别读取和写入这些额外的列(使用自定义sql)...但是必须有一些方法来覆盖EF,以便它知道这些额外的列并且可以正确处理它们.

任何帮助,将不胜感激.

Tip*_*ipx 1

第一步,您可以直接询问 _INFORMATION_SCHEMA_ 或其他元数据表,以了解您希望上下文所在的表是否具有这些列。基于该信息,您可以使用不同的DbContext(通用可能会工作),但创建它MappingConfiguration时您可以忽略列(如果它们不存在),或者将它们映射到您的上下文所需的 POCO 类。