.net core +mysqlSugar(最为简单的增删改查)

首先建立.net Core API - empty 这个就不说了

然后创建新的Controller

记得添加路由

   [Route("api/Users")]

然后在Nuget Packages安装 所需安装包

这里是用mysql所以下载如下的mysqlSugarCore

 

(切记不要忘记安装Mysql.Data)

 

创建实例化class文件DbContext.cs

 

用于连接数据库,初始化

private DbContext()
        {
        }
        public static string ConnectionString { get; set; }

        public static SqlSugarClient GetInstance()
        {
            var db = new SqlSugarClient(ConnectionString);
            return db;
        }

当然记得引用MySqlSugar的库

然后在appsetting.json中创建连接字符串

 

点击Startup.csConfigureServices函数中:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            DbContext.ConnectionString = Configuration.GetConnectionString("DefaultConnection");
        }

 

然后创建model层这里我根据数据库中的字段来创建

 

Ok接下来前期的工作完成了 ,利用sqlSugar进行基本的增删改查操作

Select

创建select接口

[HttpPost("select")]
        public string Select(Users user)
        {
            using (var db = DbContext.GetInstance()) {
                //查询所有数据的前五条并转化为Json格式
                var top5 = db.Queryable<Users>().OrderBy(it => it.username).ToJson();
                //简单的条件查询,查询表中所有女生的名字
                var girl = db.Queryable<Users>().Where(it =>it.sex ==0).Select("name").ToJson();
                return girl;
            }
        }

点击运行后 postman进行调试可以看到从数据库中取出的前5条数据以JSon的格式返回或者表中女生的名字

 

 Insert

接下来尝试用sqlsugar实现增加的操作

 [HttpPost("add")]

        public string Register(Users user)

        {

            //这里直接不加判断就增加一条学生数据

            using (var db = DbContext.GetInstance())

            {

                var status = db.Insert(user);

                //查询刚插入的sex是否有值

                var sex = db.Queryable<Users>().Single(it => it.userid == status.ObjToInt()).sex;

                return "status:"+status.ToString() + ",sex:" + sex;

            }

        }

结果

发现数据库汇总的确多了一条数据插入成功

顺便来研究一下这个db.Insert()的返回值到底是什么东西

我换了一组值进行再次post

可以发现status7 变成了8  我观察数据库发现这就是我的主键自增字段id的值(话说为什么就不是bool值呢)

Delete

然后来进行删除操作

 [HttpPost("delete")]
        public bool RemoveUser(Users user)
        {
            
            using (var db = DbContext.GetInstance())
            {
                //删除根据主键
                // db.Delete<Users, int>(10);

                //主键批量删除
                //db.Delete<Users, string>(new string[] { "100", "101", "102" });

                //假删除
                //db.FalseDelete<school>("is_del", 100);
                //等同于 update school set is_del=1 where id in(100)
                //db.FalseDelete<school>("is_del", it=>it.id==100);

                //同时满足条件删除
                bool status = db.Delete(new Users() { username = "issa2018",password = "123457"});

                return status;
            }
        }

运行postman后发现返回false  我去 难道不是我想的这样??

然后我改变代码

bool status = db.Delete(new Users() { userid = 8});

这样就返回为true了 所以这个方法只能用于主键为参数!!!

最无语的就是我将代码改成如下(密码是错误的)以为他要同时满足条件才能删除

bool status = db.Delete(new Users() { userid =7,password = "123445"});

但返回结果却是true(也就是仍然删除了userid为7的列)

最后发现满足多条件删除得这么来,感觉稍微有点麻烦啊 

bool status = db.Delete<Users>("username=@username and password=@password", new { username = user.username,password = user.password});

那我还不如这样

bool status = db.Delete<Users>("username='"+user.username+"' and password='"+user.password+"'");

 

Update

先看下如何用sqlsuagr怎么修改吧

[HttpPost("update")]

        public bool EditInfo(Users user)

        {

            

            using (var db = DbContext.GetInstance())

            {

                //支持字典更新,适合动态权限

                //var dic = new Dictionary<string, string>();

                //dic.Add("name", "第十三条");

                //dic.Add("areaId", "1");

                //db.Update<Users, int>(dic, 13);

 

                //这个更新会把除了更新的东西以外的全部值都为空赋进去因为是吧整个user带进去了

                //var updateStatus = db.Update<Users>(new Users { name = user.name, remark = user.remark }, it => it.username == user.username & it.password == user.password);

                //更新name和remark的值

                var updateStatus = db.Update<Users>(new { name = user.name, remark = user.remark }, it => it.username == user.username & it.password == user.password);

                return updateStatus;

            }

        }

 

Postman传递数据更新成功

 

下一次会整理更多有用的sqlsugar的功能

 

 

转载于:https://www.cnblogs.com/RikuBlog/p/9559672.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值