db.GridSave(getAll).ExecuteCommand();提示存在相同键,新增行主键自增列id没有自增 返回

SqlSugar 处理完成
6 162
该叫什么 oo0595 发布于2023/12/2
悬赏:0 飞吻

db.GridSave(getAll).ExecuteCommand();提示存在相同键,新增行主键自增列id没有自增

热忱回答6

  • oo0595 oo0595 VIP0
    2023/12/2

    补充:

    db.GridSave(oldList, newList).ExecuteCommand(); 

    0 回复
  • fate sta fate sta VIP0
    2023/12/3

    实体配置自增了吗

    0 回复
  • fate sta fate sta VIP0
    2023/12/3
    using SqlSugar; 
    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    
    namespace OrmTest
    {
        internal class _a5_GridSave
        {
            public static void Init()
            {
                // Get a new database connection
                // 获取一个新的数据库连接
                SqlSugarClient db = DbHelper.GetNewDb();
    
                // Initialize tables using CodeFirst
                // 使用 CodeFirst 初始化表
                db.CodeFirst.InitTables<Student>();
    
                // Clear table data
                // 清空表数据
                db.DbMaintenance.TruncateTable<Student>();
    
                // Insert two student records
                // 插入两条学生记录
                db.Insertable(new List<Student>() {
                   new Student() {Name= "jack",CreateTime=DateTime.Now},
                   new Student() {Name= "tom",CreateTime=DateTime.Now}
                }).ExecuteReturnIdentity();
    
                // Query all student records
                // 查询所有学生记录
                List<Student> getAll = db.Queryable<Student>().ToList();
    
    
                 
                // Enable entity tracking for the list 'getAll'
                // 启用对列表 'getAll' 的实体跟踪
                db.Tracking(getAll); 
    
    
    
    
                // Remove the first record
                // 移除第一条记录
                getAll.RemoveAt(0);
    
                // Modify the name of the last record
                // 修改最后一条记录的姓名
                getAll[getAll.Count - 1].Name += "_Update";
    
                // Add a new record
                // 添加新记录
                getAll.Add(new Student { Name = "NewRecord" });
    
    
    
    
    
                // Execute GridSave operation
                // 执行 GridSave 操作
                db.GridSave(getAll).ExecuteCommand();
    
                // Query all students again
                // 再次查询所有学生
                var list = db.Queryable<Student>().ToList();
            }
    
            // Define the entity class 定义实体类
            [SugarTable("SaveTable_a5")]
            public class Student
            {
                [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
                public int Id { get; set; }
                public string Name { get; set; }
                public DateTime CreateTime { get; set; }
            }
        }
    }

    这个是测试用例,在最新版本是可以正常执行的

    0 回复
  • oo0595 oo0595 VIP0
    2023/12/3

    image.png

    add一条记录的时候可以,一条以上就不行,因为两条记录主键id都是0,

    实体有设置主键

    db.GridSave(oldList, newList).ExecuteCommand();

    手动对比也是

    .NETFramwork4.8

    sqlsugar版本5.1.4.124

    0 回复
  • oo0595 oo0595 VIP0
    2023/12/3

    @fate sta

    add一条记录的时候可以,一条以上就不行,因为两条记录主键id都是0,

    实体有设置主键

    db.GridSave(oldList, newList).ExecuteCommand();

    手动对比也是

    .NETFramwork4.8

    sqlsugar版本5.1.4.124

    image.png

    0 回复
  • fate sta fate sta VIP0
    2023/12/3

    SqlSugarCore 5.1.4.125-preview22


    过几分钟勾一下预览已修复

    0 回复