【发布时间】:2011-05-22 17:47:48
【问题描述】:
这是场景:
我正在编写一个数据加载器,它接受来自某些 DB2 目录表的二进制数据。我为 DB2 表结构创建了 POCO,并在将数据加载到其中之前使用 Code First 创建 SQLServer DB。我首先使用代码并为每个数据集创建新数据库的原因之一是我正在处理不同版本的 DB2,这些版本在版本之间添加了列、移动位置的列甚至删除的列。
在开发过程中,我根据我的数据来自哪个版本的 DB2,对 POCO 的不同版本进行注释和取消注释。但现在我想要一个通用版本。一个明显的解决方案是根据 DB2 版本设置一组这些 POCO,并在其名称上加上后缀,以及一组 DBContext 类。这将要求使用 DBContext 的代码的复杂性达到一个全新的水平。
那么有没有办法根据 DB2 版本动态生成 POCO,然后让 CodeFirst 从那里获取它?
【问题讨论】:
-
如果可以,您将如何使用这些对象?显然,如果它们在编译时不存在,你就不能对它们进行编码。你准备好对他们使用反射和数据绑定(反射)了吗?
-
我想做的是让他们以适当的结构创建数据库,并且它们用于根据 POCO 结构动态构建数据集的数据加载器。
标签: .net code-generation mef ef-code-first code-first