使用EF即时将列添加到表中

时间:2015-06-11 17:27:38

标签: c# entity-framework webforms

我正在尝试创建一个系统,用户可以创建/删除表并添加/删除列。这可能与EF有关吗?我最近2天搜索了很多durinig,我已经阅读了很多例子,但他们并没有帮助我! 提前致谢。

1 个答案:

答案 0 :(得分:0)

您不应该让您的用户编写代码,而您的代码不应该编写和编译更多代码或启动其他应用程序。因此,不,这不是你想要的。

如果确实想要(并且我建议不要这样做),您可以做的是创建一个系统,用户使用C#在表中创建和添加/删除列。那部分没问题。但是,由于EntityFramework是一个ORM,它为您提供强类型对象来表示您的表/记录/等。在像这样的系统中没有用它,因为如果没有重新启动应用程序,你将无法获得那些强类型对象。

我认为您可能需要重新考虑您的方法。

旁注:如果由您的"用户"你实际上指的是团队中的开发人员,然后如果你们都使用EntityFramework Code-First并配置你的应用程序进行自动更新(添加/删除表)那么是的,这是内置的。所有你需要做的是使用新列更新强类型类或删除要删除的列,下次构建和运行数据库时应自动更新。但是,如果表中有任何数据,通常会出现问题。


创建MIS

如果您真的想继续使用UI构建自己的MIS,那么您正在从错误的角度看待事物。这是一个让你开始的开始过程:

  1. 要求:我假设您拥有所有要求和内容,否则您很快就会开始开发,而且距离StackOverflow的范围太远了
  2. 架构:首先草拟您的架构。 MIS是一个使用表和字段管理数据库的系统。您希望您的用户能够无代码地创建和管理数据库表。好吧,你可以通过让你的架构模拟表(一个表名和表的表,另一个包含列名,ID,父表ID和值等)来做到这一点;这是一个很好的CMS系统,但不是管理信息系统,因为大数据会破坏它)或实际管理数据库(许多安全考虑和事情要在这里解决)
  3. 术语:让你的语言失败。您是在谈论数据库表还是其中一个自定义表等。
  4. 框架:根据您的体系结构,EF可能是一种选择。如果您正在制作CMS,那么EF可以很容易地用在我上面举例的架构中。对于MIS来说,它可能不是正确的选择。
  5. 开发计划:计划开发的其余部分并将其分解为更小的问题。根据您的意见,您几乎只是询问如何为您构建和开发您的Bachelors最终项目。你需要自己做。此外,如果这是一个问题,我可以给你一个简洁的答案,做你想要的并且适合StackOverflow,那么提供MIS的公司就不会赚到那么多钱。