如何将数据集转换为强类型对象?

时间:2009-07-31 08:30:19

标签: c# .net asp.net ado.net dataset

我在数据集中获得了一些信息,我想将它转换为强类型对象。 例如,我的数据集有:

TableName:tab_data
行:1 列:名称,名字,地址

所以我创建了一个类:

public class Customer
{
public String Name;
public String FirstName;
public String Address;
}

将数据集简单地投射到Customer类型是否有魔术?使用LiNQ?

谢谢,

3 个答案:

答案 0 :(得分:4)

有没有理由你没有创建一个强类型的DataSet?这可能是最简单的解决方案。

您当然可以使用List<Customer>扩展名AsEnumerable转换为DataTable以及从Customer创建DataRow的投影转换为{{1}}如果你真的需要。

答案 1 :(得分:2)

你不能施放,但你可以翻译数据......

1个表的答案可能与20个表的答案不同;在个人基础上,您应该能够Select输出数据(或者just iterate) - 这将是最快的选择,但如果您有很多表,则需要大量维护。在后一种情况下,某种反射,perhaps like so

答案 2 :(得分:0)

以下是如何将数据集转换为强类型对象的示例。在某些情况下,我们通过其他可能不是强类型的来源将数据导入数据集。但是Dataset允许我们将数据转换为强类型对象。

 List<Customer> CustomerList =  
                      (from row in ds.Tables[0].AsEnumerable()
                       select new Customer
                       {
                        Name = row.Field<string>("Name"),
                        FirstName = row.Field<string>("FirstName"),
                        Address = row.Field<string>("Address")
                       }).ToList();