日期:2014-05-17  浏览次数:20394 次

3.5版本中的linq到sql实用吗?
在 Visual Studio 界面中需要将数据表存储过程或拖放到对象关系设计器中,也就是要建立DataContext对象,如果数据表中有成千上万条记录,那岂不是很占用系统内存?
下面这段代码就可以看出来,它把全部的记录都读进内存了。
        /// <summary>
        /// 获得所有订单
        /// </summary>
        /// <returns></returns>
        public DataTable getorder()
        {
            
            //声明定义类型和方法的DataModelDataContext类的对象,它是调用模型和方法的基础。
            DataModelDataContext data = new DataModelDataContext();
            //调用方法(存储过程)Pr_getorder获得所有订单
            var result = data.Pr_getorder();
            ///定义保存从数据库获取的结果的DataTable
            DataTable table = new DataTable();
            //把LINQ查询结果集转化为DataTable
            table = result.CopyToDataTable();
            return table;
        }
而在以前我手工写访问数据表的代码,用户页面上要显示几条记录(可以分页的),就能从数据库中读出相应的几条记录,所以我想请教的是linq到sql实用吗?
------解决方案--------------------
linq主要和MVC一起使用,效率不如ADO  但是很方便。
------解决方案--------------------
linq to sql也可以分页啊。

类似


/// <summary>
/// Gets the products page by page.
/// </summary>
/// <param name=”startingPageIndex”>Index of the starting page.</param>
/// <param name=”pageSize”>Size of the page.</param>
/// <returns>The list of products in the specified page</returns>
private IList<Product> GetProducts(int startingPageIndex, int pageSize)
{
  using (NorthwindDataContext context = new NorthwindDataContext())
  {
    return context.Products
           .Take<Product>(pageSize)
           .Skip<Product>(startingPageIndex * pageSize)
           .ToList<Product>();
   }
}

------解决方案--------------------
引用:
linq主要和MVC一起使用,效率不如ADO 但是很方便。

没有人定义ling主要和MVC一起使用   .net开发都能用上 至少我的应用不是只局限于mvc 这和开发框架没有关系  

你说的是不是要把所有记录都取出来  没这个要求吧  也可以根据自己的要求从数据库读取数据  
总之linq还是挺方便的  而且你学会以后 可读性还是蛮不错的
只是开始学的时候 你会觉得还不如直接首先SQL算了