0

我们的 WCF 服务将数据集返回到网络服务器,

在新的 .NET 网站中,我们将使用 MVC 5。由于 MVC 5 框架非常适用于已知的业务对象(验证框架等),我们需要将数据集转换为模型类中的已知业务对象。

我们尝试了以下转换,

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 次请求访问此代码块,这会是一个昂贵的转换吗?在负载下测试性能的更好方法是什么?或者有没有更好的方法来解决这个问题?

非常感谢您对此的任何帮助。

4

1 回答 1

2

我不会担心将 DataSet 转换为域对象所花费的时间,因为它只是通过远程服务获取数据的远程调用的一小部分。但是,对于很少更改的结果集,我建议在已解析的域对象周围添加缓存以避免转换,但更重要的是避免 WCF 调用和随后的 DB 调用。

于 2013-10-29T05:10:50.163 回答