Aop给主键设定为顺序Guid 返回
SqlSugar
处理完成
13
119

悬赏:0 飞吻
Guid主键生成的是顺序Guid。目前Aop设置Id代码如下:
db.Aop.DataExecuting = (oldValue, entityInfo) => { if (entityInfo.EntityColumnInfo.IsPrimarykey) { if (entityInfo.OperationType is DataFilterType.InsertByObject) { if (entityInfo.EntityValue is Entity entity && entity.Id == Guid.Empty) { entity.Id = IDGen.NextID(); } } } };
我既想Aop设置顺序GuidId,又想保留Insert前手动设置Id的可能。但是到Aop里面,Id已经被设置好了,只能删除
entity.Id == Guid.Empty
判断,强制覆盖Id。
有没有关闭自动生成Guid的设置?或者有aop比框架生成Guid更早设置Id。
热忱回答(13)
-
fate sta VIP0
2周前现在这个代码的问题在哪儿,我看好像没有什么问题
0 回复 -
fate sta VIP0
2周前你代码好像写错了
0 回复 -
fate sta VIP0
2周前if (entityInfo.PropertyName == "Id"&&oldValue?.ToString()==Guid.Empty) { entityInfo.SetValue(IDGen.NextID()); }
应该这样
0 回复 -
fate sta VIP0
2周前还有问题提供完整的控制台测试DEMO
0 回复 -
喐悶哋笗兲 VIP0
2周前进入DataEnecuting时,框架已经填充了,entity.Id == Guid.Empty已经进不了这个判断。
那有没有设置Id前的Aop?没有我就只能覆盖掉了。如果是特殊情况手动设置ID,我再加个隐藏Id处理吧。
0 回复 -
fate sta VIP0
2周前导航会自动赋值,建议雪花ID
0 回复 -
fate sta VIP0
2周前雪花ID是全自动的
0 回复 -
fate sta VIP0
2周前不需要额外配置
0 回复 -
喐悶哋笗兲 VIP0
2周前看文档,雪花Id不是只能给long类型的Id赋值?我研究下
0 回复 -
喐悶哋笗兲 VIP0
2周前试了下强制赋值会有个问题,导航更新重新插入从表时,Id全都刷新了。看来是不能强制覆盖Id。
0 回复 -
fate sta VIP0
2周前升级到这个版本, 可能要过五分钟勾一下预览
SqlSugarCore 5.1.4.106-preview28
AOP全部删掉用这个在程序启动时配置你的GUID
//程序启动时配置 StaticConfig.CustomGuidFunc = () => Guid.NewGuid();
试一下是不是OK
0 回复 -
喐悶哋笗兲 VIP0
2周前自定义Guid委托未被调用,Guid依旧是原来的,断点未能进去
0 回复 -
喐悶哋笗兲 VIP0
2周前0 回复