zoukankan      html  css  js  c++  java
  • 在EF中使用原生SQL,首先要创建上下文对象

    using (var db = new Entities())
    {
        //数据操作
    }

    新增

    string sql = "insert into UserInfo values('zhangsan','123456')";
        db.Database.ExecuteSqlCommand(sql);

    参数化新增

    复制代码
        sql = "insert into UserInfo values(@UserName,@UserPass)";
        var param = new SqlParameter[] 
        {
            new SqlParameter("@UserName","lisi"),
            new SqlParameter("@UserPass","123456")
        };
        db.Database.ExecuteSqlCommand(sql, param);
    复制代码

    删除

        sql = "delete from UserInfo where UserName='zhangsan'";
        db.Database.ExecuteSqlCommand(sql);

    参数化删除

        sql = "delete from UserInfo where UserName=@UserName";
        db.Database.ExecuteSqlCommand(sql, new SqlParameter("@UserName", "lisi"));

    修改

        sql = "update UserInfo set UserName='wangwu'";
        db.Database.ExecuteSqlCommand(sql);

    查询多条记录

    复制代码
        sql = "select * from UserInfo";
        var users = db.Database.SqlQuery<UserInfo>(sql);
        foreach (var user in users)
        {
            ObjectDumper.Write(user);//打印对象
        }
    复制代码

    总结:操作方式与ADO.NET类似,EF框架自动为我们封装了数据库链接和查询对象。

    完整案例:

    复制代码
    //1.创建上下文对象
                using (var db = new Entities())
                {
                    //增
                    string sql = "insert into UserInfo values('zhangsan','123456')";
                    db.Database.ExecuteSqlCommand(sql);
    
                    //参数化新增
                    sql = "insert into UserInfo values(@UserName,@UserPass)";
                    var param = new SqlParameter[] 
                    {
                        new SqlParameter("@UserName","lisi"),
                        new SqlParameter("@UserPass","123456")
                    };
                    db.Database.ExecuteSqlCommand(sql, param);
    
                    //删
                    sql = "delete from UserInfo where UserName='zhangsan'";
                    db.Database.ExecuteSqlCommand(sql);
    
                    //参数化删除
                    sql = "delete from UserInfo where UserName=@UserName";
                    db.Database.ExecuteSqlCommand(sql, new SqlParameter("@UserName", "lisi"));
    
                    //改
                    sql = "update UserInfo set UserName='wangwu'";
                    db.Database.ExecuteSqlCommand(sql);
    
                    //原生sql查询
                    sql = "select * from UserInfo";
                    var users = db.Database.SqlQuery<UserInfo>(sql);
                    foreach (var user in users)
                    {
                        ObjectDumper.Write(user);//打印对象
                    }
                }
    复制代码
  • 相关阅读:
    iostream迭代器操作"txt文本文件"无法写入的思考
    Qt 相对路径 绝对路径
    "lambda"和“bind”的初步思考
    "partition"和“stable_partition”的思考
    "accumulate"的思考
    顺序容器“inset”的思考
    C++重载函数 const形参 引用指针 const_cast
    C++ 可变参数的函数
    JDK8流式处理常用例子
    JDK8时间新API
  • 原文地址:https://www.cnblogs.com/wfy680/p/11969365.html
Copyright © 2011-2022 走看看