逻辑删除时发生错误 返回

SqlSugar
6 190

数据库逻辑删除字段是bit类型。

执行逻辑删除时,提示

在将 nvarchar 值 '@IsDeleted' 转换成数据类型 bit 时失败。

跟踪得到的SQL语句为:

exec sp_executesql N'UPDATE [test]  SET
           [isdelete]=@Const0  WHERE  [id] IN (''242103796707397'',''242795926827077'') ',N'@Const0 nvarchar(4000),@IsDeleted bit',@Const0=N'@IsDeleted',@IsDeleted=1


热忱回答6

  • 什么库

    0 回复
  • https://www.donet5.com/Home/Doc?typeId=2366 按提问模版写个DEMO

    0 回复
  • 代码是这么写的:

    await db.Deleteable<area>().Where(m => m.id == "242103796707397").IsLogic().ExecuteCommandAsync()

    SqlSugarCore 版本是:5.0.4.6

    0 回复
  • 数据库:sql server 2016

    SqlSugar 版本是:5.0.4.6

    示例代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Reflection;
    using SqlSugar;
    namespace OrmTest
    {
    class Program
    {
        static void Main(string[] args)
        {
            var db = new SqlSugarScope(new SqlSugar.ConnectionConfig()
            {
                ConnectionString = "server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST",
                DbType = DbType.SqlServer,
                IsAutoCloseConnection = true
            });
     
            //建表 
            if (!db.DbMaintenance.IsAnyTable("Test001", false))
            {
                db.CodeFirst.InitTables<Test001>();
            }
     
     
            //用例代码
            var result = await db.Deleteable<Test001>().Where(m => m.id == "242103796707397").IsLogic().ExecuteCommandAsync() 
            
     
            Console.WriteLine(result);
            Console.WriteLine("用例跑完");
            Console.ReadKey();
        }
        //建类
        public class Test001
        {
            public string id { get; set; }
            public string areaname{get;set;}
            public bool? isdelete{get;set;}
        }
     
     
    }
    }


    0 回复
  • SqlSugar 版本问题,我用的是5.0.4.6,异步逻辑删除会有问题。官方更新记录里,5.0.4.8-5.0.4.9修复了这个BUG。

    0 回复
  • @倾斜的水瓶座:那就更新

    0 回复