我想使用实体框架。但是,我还要求允许我的用户在我们的系统中定义自定义字段。我仍然想使用实体框架,而不是使用带有哈希表属性的部分类。
以下是我想到的解决方案,但这并不简单,所以我想看看是否有更好的方法。
我的想法是,有一个ModelManager对象可以在相应的表上创建一个列,修改EDM文件,并使用edmgen.exe编译文件。这将全部发生在与应用程序不同的进程和/或应用程序域中,因为应用程序将引用生成的程序集。当应用程序重新启动时,它将可以访问新添加的字段。
这是使用实体框架执行此操作的唯一方法吗?谢谢你的时间。
答案 0 :(得分:1)
在阅读了Entity Framework团队和Julie Lerman的一些博客文章后,听起来他们正在考虑让下一版本更容易。这意味着,就我所知,我在问题中说明的方式是动态添加字段到实体框架的最佳方式。
答案 1 :(得分:0)
您最终将花费更多时间尝试使此解决方案工作,然后使用HashTables完成整个项目。我并不认为实体框架适合这种情况,因为,
很抱歉,但是有些问题不容易应用于某些框架。
答案 2 :(得分:0)
我只是把它扔到那里......
您可以使用扩展方法和/或部分类让对象接受自定义字段数据的键/值对字典。然后在save事件之后,您可以使用直接SQL插入/更新该数据。