• 【EF学习笔记03】----------使用原生Sql语句


    在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);//打印对象
                    }
                }
  • 相关阅读:
    数据库的逻辑结构与物理结构
    HTTP笔记整理(1)
    当我看懂这张图的时候很痛苦~~~
    软件测试面试分享(转)
    达梦(DM)数据库Linux部署安装
    进阶的小小测试~软件测试不得不知的基础知识
    软件测试分类
    浅说软件需求分析
    浅说《测试用例》----给测试新手的
    软件测试人员两极分化
  • 原文地址:https://www.cnblogs.com/gosky/p/5751740.html
Copyright © 2020-2023  润新知