插入数据后,DataChangesExecuted事件中​entityInfo.EntityValue的主键没有赋值 返回

SqlSugar 处理中
7 230

预期:

1)数据插入到表中

2)把插入后的主键赋值到对应的实体中

3)在db.Aop.DataChangesExecuted事件中可以获取到实体的主键


实际:

db.Aop.DataChangesExecuted事件中,实体的主键仍然是空的


public class MyClass
{
    [SugarColumn(IsPrimaryKey = true, IsIdentity =true)]
    public int Id { get; set; }
 
    public string? A { get; set; }
}
 
SqlSugarClient client = new (
   sqlSugarConnectionConfig, db =>
   {
       db.Aop.DataChangesExecuted = (oldValue, entityInfo) =>
       {
           if (entityInfo.OperationType == DataFilterType.InsertByObject && entityInfo.EntityColumnInfo.IsPrimarykey)
           {
               Type type = entityInfo.EntityValue.GetType();
               var propertyInfo = type.GetProperty("Id");
 
               if (propertyInfo != null)
               {
                   var value = propertyInfo.GetValue(entityInfo.EntityValue);
                    // value是null, id是0
                   if (value is int id)
                   {
 
                   }
               }
           }
       };
   });
 
client.Insertable(new MyClass { A = "123" }).ExecuteCommandIdentityIntoEntity();


热忱回答7