• EF5执行sql查询语句 Database.SqlQuery 带返回值;EF5中 执行 sql语句使用Database.ExecuteSqlCommand 返回影响的行数 ;


    1 //一: 执行sql语句,返回受影响的行数
    2 
    3 //在mysql里面,如果没有影响,那么返回行数为  -1 ,sqlserver 里面  还没有测试过
    4 
    5 using (var ctx = new MyDbContext())
    6 {
    7     ctx.Database.ExecuteSqlCommand("UPDATE Person SET Name = 'Michael' WHERE PersonID = 1");
    8 }
     1 //二 : Database.SqlQuery<T>   EF5执行sql查询语句 Database.SqlQuery 带返回值
     2 
     3 //这个准确的说是  IEnumerable<T> SqlQuery<T>(string sql, params object[] parameters)  ,注意返回值是 IEnumerable
     4 
     5 //这个是执行sql语句,返回你想要的类型的列表
     6 
     7 dbMain.Database.SqlQuery<int>("select max(UserId) from tb_user_account").First();
     8 
     9 // 或者假如你自己有个类别
    10 
    11 public class PersonView
    12 {
    13     public int PersonID { get; set; }
    14     public string Name { get; set; }
    15 }
    16 
    17 //那么就可以直接返回这个 PersonView类 
    18 using (var ctx = new MyDbContext())
    19 {
    20     var peopleViews = ctx.SqlQuery<PersonView>("SELECT PersonID, Name FROM Person").ToList();
    21 }
    22 
    23 // 直接返回你想要的数据. 例如这里是 List<PersonView> 列表
     1 // 利用 Database.SqlQuery<T> 执行存储过程,并返回Output参数值
     2 
     3 var pCount = this._dataProvider.GetParameter();
     4 pCount.ParameterName = "totalCount";
     5 pCount.Direction = ParameterDirection.Output;
     6 pCount.DbType = DbType.Int32;
     7  
     8 var list = this._dbContext.SqlQuery<User>("exec P_GetList @totalCount out", pCount).ToList();
     9 
    10 
    11 //必须要加 .ToList(),否则获取不到 存储过程 的 Output 参数
  • 相关阅读:
    web前端-----第二弹CSS
    web前端-----第一弹html
    mysql数据库第三弹
    mysql数据库第二弹
    mysql数据库第一弹
    django
    mysql基础
    面向对象进阶
    继承、多态、多态性
    面向对象的程序设计
  • 原文地址:https://www.cnblogs.com/allenzhang/p/10405624.html
Copyright © 2020-2023  润新知