实体框架:在运行时添加属性/实体

时间:2009-01-24 22:46:18

标签: entity-framework

我想使用实体框架。但是,我还要求允许我的用户在我们的系统中定义自定义字段。我仍然想使用实体框架,而不是使用带有哈希表属性的部分类。

以下是我想到的解决方案,但这并不简单,所以我想看看是否有更好的方法。

我的想法是,有一个ModelManager对象可以在相应的表上创建一个列,修改EDM文件,并使用edmgen.exe编译文件。这将全部发生在与应用程序不同的进程和/或应用程序域中,因为应用程序将引用生成的程序集。当应用程序重新启动时,它将可以访问新添加的字段。

这是使用实体框架执行此操作的唯一方法吗?谢谢你的时间。

3 个答案:

答案 0 :(得分:1)

在阅读了Entity Framework团队和Julie Lerman的一些博客文章后,听起来他们正在考虑让下一版本更容易。这意味着,就我所知,我在问题中说明的方式是动态添加字段到实体框架的最佳方式。

答案 1 :(得分:0)

您最终将花费更多时间尝试使此解决方案工作,然后使用HashTables完成整个项目。我并不认为实体框架适合这种情况,因为,

  1. 您的代码不会被编程为使用生成的新字段
  2. 您将不得不处理从应用程序域卸载当前程序集并重新加载新程序集
  3. 你真的让自己失败了
  4. 很抱歉,但是有些问题不容易应用于某些框架。

答案 2 :(得分:0)

我只是把它扔到那里......

您可以使用扩展方法和/或部分类让对象接受自定义字段数据的键/值对字典。然后在save事件之后,您可以使用直接SQL插入/更新该数据。

相关问题