【发布时间】:2014-01-05 01:08:04
【问题描述】:
我正在开发 WCF RESTful 服务来以 json 格式公开数据。目前我正在使用将数据放入数据包中,然后迭代每一行并放入列表中,然后返回。但是我想跳过这个迭代并想直接将数据表转换为列表。
这样我将不再需要在我的服务中编写每个列映射...
当前代码:
[OperationContract]
[WebInvoke
(
Method = "GET",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "Id/All"
)
]
DataTable dt = new DataTable();
dt = myData;
List<myCls> lstAllmyCls = new List<myCls>();
foreach (DataRow dr in dt.Rows)
{
DataContactClass DataContactCls= new DataContactClass();
DataContactCls.Id = Convert.ToInt32(dr["Id"]);
DataContactCls.Name = dr["Name"].ToString();
myCls.Add(DataContactCls);
}
return myCls.ToArray();
更改代码:
var convertlist = (from dr in dt.AsEnumerable()
select new DataContactCls()
{
Id = Convert.ToInt32(dr["Id"]),
Name = dr["Name"].ToString()
}).ToList();
但在这里我也提供了列名,我想在将列表数据作为 json 重新使用时避免使用它。
谁能提出更可行的建议?
【问题讨论】: