如何在Asp.Net MVC中将数据表转换为POCO对象?
将每个DataRow传递给类构造函数(或使用getter/setter)并将每个列转换为相应的属性.小心可空列可以正确提取它们.
public class POCO { public int ID { get; set; } public string Name { get; set; } public DateTime? Modified { get; set; } ... public POCO() { } public POCO( DataRow row ) { this.ID = (int)row["id"]; this.Name = (string)row["name"]; if (!(row["modified"] is DBNull)) { this.Modified = (DateTime)row["modified"]; } ... } }
数据表通常包含许多行 - 您是否要将每一行转换为对象实例?
在这种情况下,您可以例如向POCO对象添加一个构造函数,该构造函数将接受DataRow
as参数,然后从中提取以下部分DataRow
:
public YourPOCO(DataRow row) { this.Field1 = row["Field1"].ToString(); ... this.FieldN = Convert.ToInt32(row["FieldN"]); }
依此类推,然后在DataTable.Rows
集合中的每一行上调用该构造函数:
Listlist = new List (); foreach(DataRow row in YourDataTable.Rows) { list.Add(new YourPOCO(row)); }
然后,您可以基于此"YourPOCO"类型创建ASP.NET MVC视图或部分视图,并使用"List"模板在类似列表的显示中创建"YourPOCO"实例列表.
渣