实体框架访问具有相似但略有不同的架构的多个数据库



我有多个现有的SQL Server数据库,用于不同的客户端,这些客户端的架构有95%的相似性,但每个数据库中可能有一些额外的自定义列来处理某些特定的客户需求。

例如,数据库 A 可能有一个包含两个自定义列的表:

StdColumn1, StdColumn2, CompanyACustom1, CompanyACustom2

数据库 B 可能有一个自定义列:

StdColumn1, StdColumn2, AnotherCompanyCustom1

数据库 C 可能没有自定义列,只有:

StdColumn1, StdColumn2

我想配置实体框架,以便 C# 对象具有一些额外的预定义属性(例如:CustomColumn1CustomCustom2 等),这些属性映射到这些自定义列(如果存在),或者如果自定义列不存在,则不起作用。

视图将是执行此操作的一种方法,但我想知道我是否可以使用 CSDL、SSDL 和 MSDL 文件来做这样的事情。或者也许这项技术可以发挥作用?

实体框架是一个编译时框架,必须提前知道架构。它没有动态模式,这是您需要的。但是有一些实体框架"扩展"在后台使用 EF,并在运行时编译模型。缺点是您需要使用"动态"对象与之交互(因为在编译时不知道类型)。

预制扩展...实体框架动态数据模型生成器实体框架运行时模型适配器

或者,您可以推出自己的解决方案,从而使用 XML 操作调整 SSDL 和 MSL 文件......http://social.msdn.microsoft.com/Forums/en-US/6ed96028-0d43-4ab7-ade6-d5aaf3ffd6cf/updating-the-entity-framework-at-runtime

最新更新