0

我正在尝试构建一个 Web 应用程序,让管理员通过 C# 与数据库对话并添加新的表和列以满足他的要求(有点像一个非常简单的数据库工作室),但我不只是想创建一些意大利面条应用程序.

所以我试图弄清楚当他创建表并使用表来构建它们时如何动态地(自动地)让这些东西:

1-业务对象或实体(类,它的对象和属性)。2- 数据访问层(连接到数据库和添加、更新、删除检索项目(对象)的一些简单方法)。

这可能吗 ?关于如何实现它的任何指示?

编辑

刚打开你的链接!!..它在谈论数据绑定控件和东西!..我的问题比这更高级!当您构建 N 层应用程序时,您从数据库架构和实现开始,并且很容易以编程方式完成,然后您开始构建 DAL 类(添加、编辑等,换句话说,CRUD 操作)并形成这个数据库

我想要做的是允许网络管理员选择通过我的应用程序添加新表,然后 - 动态地 - 应用程序将表名称和列作为参数并创建新类并在其中定义将实现的 CRUD 方法SQL CRUD 操作

然后它还将动态创建类并在其中定义变量、属性和方法以调用和使用 DAL 方法..所有这些都基于表、列名

注意:所有这些都发生在运行时!

4

4 回答 4

1

您可能想查看ASP.Net Dynamic Data。这是一个 RAD 工具,可以很容易地为您的实体等提供 CRUD 功能。看看这个。

于 2011-02-27T21:29:19.023 回答
0

首先,任何试图创建 MS Access 的人都注定要重新创建 MS Access。很糟糕。

您最好使用 ASP.NET Dynamic Data(如建议的那样)或ASP.NET MVC Scaffolding。但是运行时生成的实际制作体面的应用程序的游戏形式确实是白日梦。您将需要开发人员的时间来做任何复杂的事情。或者好吧。

于 2011-02-28T04:46:08.207 回答
0

有时我也曾在 SO 上问过类似的问题。我只有一个回复。

今天我在 MSDN 上挖掘一些信息,正如我所猜测的那样,MS CRM 实体模型基于元数据工作。因此,基本上 CRM 开发人员所针对的只是元数据,它们本身并不是真实的对象。以下是 MSDN 链接。

扩展 MS CRM 元数据,这里是MS CRM 4.0 SDK

我希望这能让你开始。

更新:最近遇到了Visual Studio LightSwitch。我认为这就是我们想要构建的。一个 UI,它将从 DB 中获取表信息,然后创建所有 CRUD 屏幕。VS LightSwitch 处于 Beta1 阶段,潜力巨大。应该是一个不错的起点。

于 2011-03-01T18:45:10.710 回答
-1

你问的是无稽之谈。为什么?因为 BLL 和 n-tier 背后的想法是您非常了解您的数据模型,并且可以创建一个静态类模型来表示您的数据模型。

如果您的数据模型是动态的且不断变化的,那么您无法创建静态 BLL(这就是 BLL)。您必须在运行时动态构建查询。这不是任何传统方法都旨在处理的事情,因此您必须自己做所有事情。

虽然可以在运行时动态生成类,但这可能不是您想要采用的方法,因为即使您设法使 BLL 适应您的动态数据库.. 调用 BLL 的代码将不知道任何关于它,因此它永远不会被调用。

这不是您可以在一夜之间解决的问题,也不是通过复制任何现有解决方案来解决的问题。您将不得不从头开始设计它,使用低级别的 ADO 调用,而不是依赖 ORM 或任何自动化。

于 2011-02-28T05:11:16.713 回答