插入数据后,DataChangesExecuted事件中entityInfo.EntityValue的主键没有赋值 返回
SqlSugar
处理中
7
230
绿野の仙踪 发布于1个月前
悬赏:0 飞吻
预期:
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)
-
绿野の仙踪 VIP01个月前
求大佬帮忙解决这个问题
0 回复 -
fate sta VIP01个月前
自增可能暂时拿不到。
0 回复 -
fate sta VIP01个月前
这个我想办法处理一下
0 回复 -
fate sta VIP01个月前
不过批量插入肯定是拿不到的。只能单条
0 回复 -
绿野の仙踪 VIP01个月前
@fate sta: 谢谢。我现在就只是单条插入
0 回复 -
绿野の仙踪 VIP01个月前
@fate sta:大神,有解决办法了吗?
0 回复 -
fate sta VIP01个月前
@绿野の仙踪:还没处理,这2天有点忙。尽快
0 回复