如动态创建模型,并查询数据库返回模型
时间: 2023-12-12 07:16:36 浏览: 57
要动态创建模型并查询数据库返回模型,可以使用 C# 中的反射机制和 TypeDescriptor。首先,我们需要定义一个包含属性的类,然后使用 TypeDescriptor 动态创建这个类的实例。然后,我们可以使用反射机制获取数据库中的数据,并将其填充到这个动态创建的类的实例中。最后,我们可以将这个类的实例返回给调用者。
下面是一个示例代码:
```csharp
// 定义一个包含属性的类
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
// 动态创建类的实例
var personType = TypeDescriptor.CreateType(typeof(Person));
var person = Activator.CreateInstance(personType);
// 从数据库中获取数据并填充到类的实例中
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using (var command = new SqlCommand("SELECT Name, Age FROM Persons", connection))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
personType.GetProperty("Name").SetValue(person, reader.GetString(0));
personType.GetProperty("Age").SetValue(person, reader.GetInt32(1));
}
}
}
}
// 返回类的实例
return person as Person;
```
在上面的示例代码中,我们首先定义了一个包含 Name 和 Age 属性的 Person 类。然后,我们使用 TypeDescriptor 创建了一个动态类型。接着,我们从数据库中获取数据,并使用反射机制将数据填充到动态类型的实例中。最后,我们将动态类型的实例转换为 Person 类型并返回。
阅读全文