数据集转换为Linq对象

时间:2013-10-29 05:00:52

标签: performance wcf linq-to-sql dataset

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

真的很感激任何帮助。

1 个答案:

答案 0 :(得分:2)

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