在运行时从数据库创建类

本文关键字:创建 数据库 运行时 | 更新日期: 2023-09-27 18:32:57

如何在运行时使用数据库条目创建类?

例如:

ID(整数) :

1

名称(字符串) :

产品

内容(字符串):

public class Product
{
    public string Name { get; set; }
    public string Family { get; set; }
    public int Age { get; set; }      
}

或其他模式

它用于动态页面生成器


更新:

更准确地说,我的意思是我需要为数据库的每条记录提供一个类,而不是每个表都有一个类,而这个类最能让我能够使用 SQL 的常用指令,如 CRUD

在运行时从数据库创建类

如果你在

编译时不知道数据,那么在运行时构建一个类就没有多大意义了——你不妨使用 (gulp) DataTable(去洗手)。如果你编译时知道这个类,那么要么编写类(就像你所做的那样)并使用像"dapper"这样的工具,或者使用ORM工具,如EF,NHibernate,LINQ-to-SQL等,它将从数据库生成类型(在设计时),并允许你的代码与类型交互。

为什么要

针对数据库条目创建一个类?我想你想针对一个类的每个条目创建对象,比如 Person。最好针对每个表创建类,然后针对数据库中的记录创建对象。 我认为您正在寻找ORM,请检查Linq to SQL。您也可以使用反射在运行时创建代码,但我真的认为没有必要。

你不能真正动态地创建类(嗯,你可以,但这是一个巨大的反模式,不是我推荐的)。在我看来,您有两种选择:

1) 使用 .Net 4 动态关键字。

2) 创建一个"泛型"类,其中包含保存类型、标识符和序列化数据的属性。

您可以使用 JJMasterData,一个在运行时生成 CRUD 的库。在拉取请求 #13 上,我们开发了从数据库表生成 C# 类。我们同时支持 .NET 6 和 .NET Framework 以及许多开箱即用的功能,例如数据导入和导出。