我想知道是否有办法在运行时动态生成类。我想先在实体框架代码中使用它。
考虑如果我有 100 个表(或连接到未知数据库),我将不得不在 EF Code First 中为每个表创建模型/POCO,而不是这个我想在运行时基于连接的数据库生成 POCO 类及其所有属性.
我想知道是否有办法在运行时动态生成类。我想先在实体框架代码中使用它。
考虑如果我有 100 个表(或连接到未知数据库),我将不得不在 EF Code First 中为每个表创建模型/POCO,而不是这个我想在运行时基于连接的数据库生成 POCO 类及其所有属性.
可能不是。
考虑一下……如果在编译之前没有定义类,那么其他代码将如何使用它们?如果没有其他代码将使用它们,为什么需要它们?
您可以在设计时根据表模式生成对象。实体框架实际上不是已经这样做了吗?
我意识到我已经链接到“数据库优先”而不是“代码优先”的东西,但是,这就是你要问的:
我想先在实体框架代码中使用它。
[...]
我将不得不为 EF 中的每个表创建模型/POCO
您有一个数据库,并且您想根据该数据库的模式生成模型。那是数据库优先。
您可以使用 Visual Studio 2010 或 2012 的 EF Power Tools(测试版 3)将数据库反向工程为 POCO。安装后,右键单击一个项目,然后在新的 Entity Framework 菜单组下选择 Reverse Engineer Code First。电动工具:http: //visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d
Rowan Miller 有一篇关于此的博客文章,以及一些高级用途:http ://romiller.com/2012/05/09/customizing-reverse-engineer-code-first-in-the-ef-power-tools/