我们的WCF服务将数据集返回到网络服务器,
在新的.NET网站中,我们将使用MVC 5.由于MVC 5框架在已知的业务对象(验证框架等)中运行良好,我们需要将数据集转换为Model类中的已知业务对象。
我们尝试了以下转换,
public List<Category> GetCategories()
{
List<Category> cats = new List<Category>();
DataTable dt = //get data table from the dataset;
foreach (DataRow row in dt.Rows)
{
Category cat = new Category();
cat.CategoryID = int.Parse(row["CategoryID"].ToString());
cat.CategoryName = row["CategoryName"].ToString();
cat.Description = row["Description"].ToString();
cat.Picture = GetBytes(row["Picture"].ToString());
cats.Add(cat);
}
return cats;
}
假设我们检索并解压缩数据表。 如果每秒有100个请求访问此代码块,这将是一个昂贵的转换吗? 什么是在负载下测试性能的更好方法? 或者有更好的方法来解决这个问题吗?
真的很感激任何帮助。
答案 0 :(得分:2)
我不担心将DataSet转换为域对象所花费的时间,因为它将成为通过远程服务获取数据的远程调用的一小部分。 但是,对于很少更改的结果集,我建议在已解析的域对象周围添加缓存以避免转换,但更重要的是避免WCF调用和后续的数据库调用。