将Entity Framework用于运行时定义的元数据

时间:2012-10-31 10:55:01

标签: entity-framework

我们实际上正在分析将当前DataBase管理系统迁移到实体框架的影响。截至今天(迁移之前),该产品使最终用户能够从管理界面在ASP .Net应用程序中创建自己的对象类型。然后将这些对象类型转换为字段和表的DB表创建/删除/更新。通常,一个用户可以从最终用户界面创建新的MyCar对象类型,创建一些属性,并且一旦经过验证,他就可以创建新值。这显然在数据库中反映为新的MyCar表,两个字段和新插入。

我遇到的主要问题与实体框架的集成方式有关,因此我们可以通过Linq查询作为第一步查询这些表。我知道理想情况下我们应该使用代码优先或模型优先方法,但我们希望一步一步地进行。

经过一些研究后发现:

  1. 实体框架不提供直接更新内部元数据的功能
  2. 我们可以利用动态类型创建,以便实体框架将基于代码优先模型(运行时,但仍然代码优先:-)),动态queyword将允许我们通过后期绑定。见linq
  3. 希望我提供了大局。请告诉我,如果我遗漏任何东西,并且第二个要点中描述的方法似乎是我的问题的正确答案。其中一个挑战是可以创建字段或类型:如果我必须使用反射来完成运行时创建的类型,我将无法做到这一点。在这种情况下,我可以使用appdomains(并且每当我必须重置时重新创建一个新的)但这可能会引入新的问题(可访问性/性能/实体框架与其他appdomains /中定义的类型不兼容)。

    我非常了解IQToolkit,我知道如何在运行时轻松地重新定义元数据而不必引入.Net类型 - 在这方面IQToolkit可能是首选的解决方案...

    欢迎任何建议!

0 个答案:

没有答案