使用 EF 动态向表添加列

本文关键字:添加 EF 动态 使用 | 更新日期: 2023-09-27 17:55:36

>我正在尝试创建一个用户可以创建/删除表并从中添加/删除列的系统。这可能与EF有关吗?过去两天我搜索了很多durinig,我读了很多例子,但他们没有帮助我!提前谢谢。

使用 EF 动态向表添加列

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

如果你真的想(我建议不要这样做),你可以做的是创建一个系统,用户在其中使用 C# 创建和添加/删除表中的列。这部分很好。但是,由于 EntityFramework 是一个 ORM,它为您提供强类型对象来表示您的表/记录/等,因此在这样的系统中它没有任何用处,因为您将无法在不重新启动应用程序的情况下获取这些强类型对象。

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

旁注:如果您的"用户"实际上指的是团队中的开发人员,那么如果您都使用 EntityFramework 代码优先并将应用程序配置为自动更新(添加/删除表),那么是的,这是内置的。您所要做的就是使用新列更新强类型类,或者删除要删除的列,下次生成和运行数据库时应自动更新。但是,如果表中有任何数据,则通常会出现问题。


关于创建管理信息系统

如果您真的想继续并使用UI构建自己的MIS,那么您就是从错误的角度看待事物。以下是一些入门过程:

  1. 需求:我假设您拥有所有的需求和东西,否则您开始开发得太早了,这超出了StackOverflow的范围。
  2. 架构
  3. 从起草架构开始。MIS是用于管理具有表和字段的数据库的系统。您希望用户能够无代码地创建和管理数据库表。好吧,你可以通过让你的架构模拟表(一个表名和ID的表,另一个表与列名,ID,父表ID和值等;这对于CMS来说是一个很好的系统,但不是MIS,因为大数据会粉碎它)或通过实际管理数据库(这里有很多安全考虑和解决方法)
  4. 术语
  5. 让你的术语下来。您是在谈论数据库表还是自定义表之一等。
  6. 框架:根据体系结构,EF 可能是一个选项。如果您正在制作 CMS,那么 EF 可以很容易地在我上面给出的示例的体系结构中使用。对于MIS,它可能不是正确的选择。
  7. 发展规划:规划其余的开发并将其分解为较小的问题。根据您的评论,您几乎只是询问如何为您构建和开发您的学士最终项目。你需要自己做。此外,如果这是一个我可以给你一个简洁的答案,可以做你想要的并且适合StackOverflow,那么提供MIS的公司就不会像现在这样赚那么多钱。