我继承了一个与许多不同客户数据库通信的应用程序。
客户端数据库中的大多数这些表具有相同的模式 - 但是有一些表具有包含税务信息的额外自定义列(是的 - 糟糕的想法 - 我知道......我没有设置它)。 / p>
这些额外的列可以命名为任何名称。它们在运行时是已知的,因为它们可以在另一个表中查找。
我可以将EF设置为读取/写入这些表(跳过动态列),但我确实需要这些信息 - 因为它是税务数据。
我认为我最好的路线是添加额外属性的固定模型,可以通过这些动态列填充。
如何在不使用每次调用的自定义SQL语句的情况下让Entity Framework动态读取和写入这些列?
我可以进行额外的读写操作,分别读取和写入这些额外的列(使用自定义sql)...但是必须有一些方法来覆盖EF,以便它知道这些额外的列并且可以正确处理它们。
任何帮助都将不胜感激。
答案 0 :(得分:1)
在第一步中,您可以直接询问_INFORMATION_SCHEMA_或其他元数据表,以了解您希望上下文所在的表是否具有这些列。根据这些信息,您可以使用不同的DbContext
(通用可能会有效),但可以使用MappingConfiguration
创建它,如果不在列中,您可以忽略列,或将它们映射到你想要的POCO课程。