从数据库在运行时创建类

时间:2012-05-02 07:09:54

标签: c# asp.net database

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

例如:

ID(int):

1

名称(字符串):

产品

内容(字符串):

public class Product
{
    public string Name { get; set; }

    public string Family { get; set; }

    public int Age { get; set; }      
}

或其他模式

用于动态页面生成器


更新:

更准确地说,我的意思是我需要为每个数据库记录创建一个类,而不是每个表的类,这个类最能够让我能够使用像CRUD这样的SQL常用指令

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

为什么要创建针对数据库条目的类?我想你想为一个类的每个条目创建一个对象,比如说Person。最好是为每个表创建类,然后针对数据库中的记录为这些类创建对象。我认为您正在寻找ORM,请查看Linq to SQL。你也可以create code at runtime使用反射,但我真的不认为需要它。

答案 2 :(得分:1)

你不能真正动态创建类(嗯,你可以,但它是一个巨大的反模式而不是我推荐的东西)。我看到它的方式,你有两个选择:

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

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