C# 实体框架与动态模式

C# 实体框架与动态模式,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我继承了一个与许多不同的客户机数据库通信的应用程序 客户机数据库中的大多数表都有相同的模式,但也有少数表有额外的自定义列,其中包含税务信息(这是个坏主意,我知道……我没有设置它) 这些额外的列可以命名为任何名称。它们在运行时是已知的,因为它们可以在另一个表中查找 我可以将EF设置为它将读/写这些表(跳过动态列),但我确实需要这些信息——因为它是税务数据 我认为我最好的方法是使用一个固定的模型,并添加额外的属性,这些属性可以由这些动态列填充 如何让EntityFramework动态地读写这些列,而

我继承了一个与许多不同的客户机数据库通信的应用程序

客户机数据库中的大多数表都有相同的模式,但也有少数表有额外的自定义列,其中包含税务信息(这是个坏主意,我知道……我没有设置它)

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

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

我认为我最好的方法是使用一个固定的模型,并添加额外的属性,这些属性可以由这些动态列填充

如何让EntityFramework动态地读写这些列,而不必在每次调用时使用自定义SQL语句

我可以进行额外的读写操作来分别读写这些额外的列(使用自定义sql)……但必须有某种方法来重写EF,以便它了解这些额外的列并正确处理它们


任何帮助都将不胜感激。

首先,您可以直接查询“信息”模式或其他元数据表,以了解您希望上下文所在的表是否有这些列。基于这些信息,您可以使用不同的
DbContext
(通用可能会起作用),但可以使用
MappingConfiguration
创建它,在该配置中,您可以忽略不存在的列,也可以将它们映射到上下文所需的POCO类