1

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

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

做了一些研究后发现:

  1. 实体框架不提供直接更新内部元数据的能力
  2. 我们可以利用动态类型创建,以便实体框架基于代码优先模型(运行时,但仍然是代码优先:-)),并且动态关键字将允许我们通过后期绑定检索属性。看到这个linq

希望我提供了大图。请告诉我我是否遗漏了什么,以及第二个要点中描述的方法是否是解决我的问题的正确答案。挑战之一是可以创建字段或类型:如果我必须使用反射检查运行时创建的类型,我将无法做到这一点。在这种情况下,我可以使用 appdomains(并在我必须进行重置时重新创建一个新的),但这可能会引入新问题(可访问性/性能/实体框架与其他 appdomains 中定义的类型不兼容 / ...)。

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

欢迎任何建议!

4

0 回答 0