C# 动态使用EF将列添加到表中

C# 动态使用EF将列添加到表中,c#,entity-framework,webforms,C#,Entity Framework,Webforms,我试图创建一个系统,用户可以创建/删除表,并从中添加/删除列。这可能与EF有关吗?在过去的两天里我搜索了很多,我读了很多例子,但是他们没有帮助我! 提前谢谢 您不应该让用户编写代码,您的代码也不应该编写和编译更多代码或启动其他应用程序。因此,不,这不是你想要的 如果您真的想(我建议您不要这样做),您可以创建一个系统,让用户使用C#从表中创建和添加/删除列。那部分很好。但是,由于EntityFramework是一种ORM,它为您提供强类型对象来表示表/记录等。在这样的系统中,它没有任何用处,因为如

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

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

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

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

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


创建管理信息系统时

如果你真的想继续用UI构建你自己的MIS,那么你从错误的角度看问题。以下是一些让您开始的开始过程:

  • 需求:我假设您已经具备了所有的需求和内容,否则您开始开发的时间太早了,这超出了StackOverflow的范围
  • 架构:从起草架构开始。MIS是一个用表和字段管理数据库的系统。您希望用户能够免费创建和管理数据库表。好的,您可以通过让您的体系结构模拟表(一个表名和ID的表,另一个表有列名、ID、父表ID和值等;这是CMS的好系统,但不是MIS,因为大数据会破坏它),或者通过实际管理数据库来实现(这里有很多安全注意事项和需要解决的问题)
  • 术语:把你的行话写下来。你说的是数据库表还是自定义表等等
  • 框架:根据您的架构,EF可能是一个选项。如果您正在制作CMS,那么EF可以很容易地用于我上面给出的架构示例。对于MIS,它可能不是正确的选择
  • 发展规划:规划你的发展的其余部分,并将其分解成更小的问题。根据你的评论,你几乎只是问如何为你设计和开发你的学士学位最终项目。你需要自己做这件事。此外,如果这是一个问题,我可以给你一个简洁的答案,这并不意味着什么如果你愿意,而且适合StackOverflow,那么提供MISs的公司就不会像现在这样赚钱

  • 是的,我首先使用代码正如我之前所说的用户我不是指最终用户!所以请不要担心安全问题!如果你不想再听到这些,你可能想更新你的原始帖子。你不能期望每个人都浏览其他答案下的每个评论。我很抱歉在之前的评论中推荐ODP.NET。我我不知道为什么我会觉得你在使用Oracle。我一定是在做梦。但是你会想看看ADO.NET来了解你的问题。在这种情况下,EF肯定不是你想要的。祝你好运。另外,请尽量不要在每个句子的结尾使用感叹号!像其他人一样使用句号!每次我阅读你的com时我想你是在对我大喊大叫,而我只是想帮你!我能做什么?!我正在尝试创建一个MIS,希望能够在不更改代码的情况下添加/删除表和字段!我不想允许任何用户更改数据库!我只是想让自己在将来很容易快速地创建类似的系统!因此,如果需要,请指导我有任何方法可以做到这一点!是的,我指的是开发人员!但是!我想在不改变代码的情况下(至少是手动的)做到这一点。我想让这些神奇的事情在运行时自动发生!我想制作一个系统,使我们能够轻松地制作其他系统而不需要编码(在lewst的db部分).我知道你在说什么!但那不是我想要的!你可以从头开始写,但EntityFramework不会帮你。第二段更符合你的要求。我通常不会这样说,但在这种情况下我会这样说:如果你不确定如何开始,那么我会真诚地建议你不要这样做。MIS是一个复杂的系统,我需要s通常用于存储有价值的数据。它应该由负责支持它的专家开发和设计。如果你不知道从哪里开始,那么这是一个有趣的项目,但不是你应该投入生产的东西。找到一个现有的系统,你可以使用。你正在寻找的是一种获取密码的方法g退出编码。您可以使用SQL Management Studio之类的工具创建表和关系,也可以使用Visio构建数据库结构,并让它自动创建/更新表。无论哪种方式,您都需要代码连接到这些数据库并查看更改的表。因此,您仍然需要编写代码。I我曾经写过一些CMS,其中包含比MIS更严格定义的数据,arcitecture必须支持这一点。你也可以这样做,但这不是你所描述的。