首页 > 解决方案 > 在 ASP.Net 中基于 SQL 表动态生成模型

问题描述

我正在尝试创建一个可以基于 SQL 表动态构建的模型。我不会事先知道 SQL 表,所以模型需要是动态的。可能的表太多,无法为每个表预先构建模型。我希望用户能够通过,从列表中选择一个表,然后根据该表生成一个模型。任何见解或方向将不胜感激。谢谢

标签: c#asp.netasp.net-mvcmodel-view-controller

解决方案


我能想到几种略有不同的方法。所有人都会考虑使用代码生成器(例如 T4 文本模板工具)

我们使用的一种方法是将所有 Columnsdefinition 和 Tabledefinition 映射到数据库中单独的自己的表中。这并不是非常必要的,因为您可以使用数据库的 Information_Schema 来检索简单模型所需的信息。但!一旦您需要列和表的附加信息(这种情况更有可能),我会考虑将它们映射为自己的表中的自己的数据记录。

具体而言,我的意思是列和表定义是创建模型所需的信息。例如,表 DialogColumn 具有列名(nVarchar)、显示名(nVarchar)、记录历史(位)、UID_Dialogtable 和其他一些表示模型属性的“元”数据。一个表,让我们将其命名为 Dialogtable,然后提供所有属性,例如。表名、显示名、onsavingscript 等。

使用此信息,您可以生成类型包装器作为模型。您最好将它们创建为编译器构建过程中的前一步,或者只创建一次(取决于您的架构)。为了扩展和更改模型结构,您可以编写一个单独的工具,为您管理数据库中的表和列条目并编译您需要的程序集。

等等等等


推荐阅读