linq to sql 扩展方法
2014-09-26 13:36
363 查看
老赵的博客:http://blog.zhaojie.me/2008/02/using-translate-method-and-modify-command-text-before-query-in-linq-to-sql.html
http://www.csharpwin.com/dotnetspace/9639r2943_2.shtml
View Code
http://www.csharpwin.com/dotnetspace/9639r2943_2.shtml
1、DataContext扩展方法
/// <summary> /// DataContext扩展方法 /// </summary> public static class DataContextExtends { /// <summary> /// ExecuteQuery方法扩展,将对象以redader方式转换为实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="dataContext"></param> /// <param name="query"></param> /// <returns></returns> public static List<T> ExecuteQuery<T>(this DataContext dataContext, IQueryable<object> query) { return ExecuteQuery<T>(dataContext, query, 1, query.Cast<T>().Count()); } /// <summary> /// ExecuteQuery方法扩展,代表分页的 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="dataContext"></param> /// <param name="query"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public static List<T> ExecuteQuery<T>(this DataContext dataContext, IQueryable<object> query, int pageIndex, int pageSize) { int total = query.Count(); int totalPages = total / pageSize; if (total % pageSize > 0) totalPages++; if (pageIndex > totalPages) { pageIndex = totalPages; } if (pageIndex < 1) { pageIndex = 1; } query.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); DbCommand command = dataContext.GetCommand(query); dataContext.OpenConnection(); using (DbDataReader reader = command.ExecuteReader()) { return dataContext.Translate<T>(reader).ToList(); } } private static void OpenConnection(this DataContext dataContext) { if (dataContext.Connection.State == ConnectionState.Closed) dataContext.Connection.Open(); } }
View Code
相关文章推荐
- 使用扩展方法对Linq to SQl Classes扩展,使其在增删改时返回结果
- linq to sql 扩展方法
- 扩展方法解决LinqToSql Contains超过2100行报错问题
- LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
- 地磅称量系统之(55) 扩展LINQ to SQL Classes将数据表映射成对象后不具有的验证规则
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL
- linq to sql 分页 的几种方法
- CodeSmith发布代替和扩展LINQ to SQL的工具——PLINQO(转)
- [转自JeffreyZhao]在LINQ to SQL中使用Translate方法以及修改查询用SQL
- LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
- LINQ学习笔记(三)之LINQ to SQL 查询语句使用方法一
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL (转)
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数据库子表方法
- [导入]LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
- Linq to SQL Delete时遇到问题的解决方法
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL
- 扩展LINQ to SQL:使用Lambda Expression批量删除数据
- 扩展LINQ to SQL:使用Lambda Expression批量删除数据
- asp.net Linq TO Sql 分页方法
- LINQ to SQL实战 动态LINQ的几种方法