EF 使用SQL查询



public
List<UserInfoDTO> UserInfo_SearchList(ref int total, int page, int rows, string userId, string userName) { SqlParameter[] sqlParam = new SqlParameter[1]; string sql = "select * from JYsys001 where 1=1 "; if (!string.IsNullOrEmpty(userId)) { string str = "%" + userId + "%"; sqlParam[0] = new SqlParameter("@id", (Object)str); sql += " and UserId like @id "; ////不是模糊查询 //sqlParam[0] = new SqlParameter("@id", userId); //sql += " and UserId = @id "; } var list = _userInfoRepository.ExecuteQuery(ref total, page, rows, sql, !string.IsNullOrEmpty(userId) ? sqlParam : null).ToList(); //Entity转换DTO return list.ProjectedAsCollection<UserInfoDTO>(); } //下面这个方面在Repository中重写 /// <summary> /// SQL查询 /// 如要用此方法,那建表的字段必须和类的字段相同,也就是建数据表的字段不能用Column另起字段名 /// </summary> /// <param name="total"></param> /// <param name="page"></param> /// <param name="rows"></param> /// <param name="sql"></param> /// <param name="sqlParam"></param> /// <returns></returns> public virtual List<TEntity> ExecuteQuery(ref int total, int page, int rows, string sql, params SqlParameter[] sqlParam) { var query = new List<TEntity>(); if (sqlParam != null) query = _UnitOfWork.ExecuteQuery<TEntity>(sql, sqlParam).ToList(); else query = _UnitOfWork.ExecuteQuery<TEntity>(sql).ToList(); total = query.Count(); return query.Skip(rows * (page-1)).Take(rows).ToList(); } //_UnitOfWork:EF核心类(和数据库关连的类) //例: var query = _UnitOfWork.ExecuteQuery<实体类名>( SQL语句);

 

转载于:https://www.cnblogs.com/zishen/p/4979327.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EF Core中,可以使用LINQ查询语法或原生SQL语句来执行数据库操作。下面分别介绍如何使用这两种方式。 1. LINQ查询语法: 使用LINQ查询语法可以通过编写类似于SQL查询的代码来执行数据库操作。以下是一些示例: ```csharp using (var context = new MyDbContext()) { // 查询所有的实体 var entities = context.MyEntities.ToList(); // 查询符合条件的实体 var filteredEntities = context.MyEntities.Where(e => e.Name == "John").ToList(); // 连接查询 var joinedEntities = from e in context.MyEntities join d in context.OtherEntities on e.Id equals d.EntityId select new { Entity = e, OtherEntity = d }; // 排序和分页 var sortedEntities = context.MyEntities.OrderBy(e => e.Name).Skip(10).Take(5).ToList(); } ``` 2. 原生SQL语句: 如果需要执行复杂的数据库操作或使用特定的SQL语句,可以使用EF Core的原生SQL功能。以下是一些示例: ```csharp using (var context = new MyDbContext()) { // 执行原生SQL查询 var entities = context.MyEntities.FromSqlRaw("SELECT * FROM MyTable").ToList(); // 执行原生SQL命令 context.Database.ExecuteSqlRaw("UPDATE MyTable SET Name = 'NewName' WHERE Id = 1"); } ``` 注意:在使用原生SQL时,需要小心防止SQL注入攻击,并确保正确地处理参数化查询。 这些示例演示了如何使用LINQ查询语法和原生SQL语句来执行数据库操作。根据具体的需求,您可以选择适合的方式进行操作。如果您需要更多关于EF Core SQL语句的细节或示例,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值