3

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

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

StdColumn1, StdColumn2, CompanyACustom1, CompanyACustom2

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

StdColumn1, StdColumn2, AnotherCompanyCustom1

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

StdColumn1, StdColumn2

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

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

4

1 回答 1

1

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

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

Or you can roll your own solution whereby you adjust your SSDL and MSL files using XML manipulation... http://social.msdn.microsoft.com/Forums/en-US/6ed96028-0d43-4ab7-ade6-d5aaf3ffd6cf/updating-the-entity-framework-at-runtime

于 2014-01-13T14:22:36.263 回答