shuxinqin / Chloe

A lightweight and high-performance Object/Relational Mapping(ORM) library for .NET --C#
https://github.com/shuxinqin/Chloe/wiki
MIT License
1.52k stars 455 forks source link

偶发性崩溃 #374

Closed nodyang closed 11 months ago

nodyang commented 11 months ago

00b1fe122eb48c7a97bf1b3c1cf00e1 1699836372181 线上突然某一段时间就提示 异常。苦苦找了几天也不好。偶尔就崩溃 提示找不到IsDeleted 数据库一定有这个字段

nodyang commented 11 months ago

这个扩展很多地方在用 唯一的区别别的地方没用 1699839091487 锁。研究好几天了。不知道哪有问题。还不是必现。大分部场景是Mq 并发过来的。直接调用都么有问题

shuxinqin commented 11 months ago

看不出问题原因,先不调用 FilterDeletedAndDisabled 方法,改成 query.Where(a=>a.IsDelete == false).Where(a=>a.IsEnabled == false) 试试看效果

shuxinqin commented 11 months ago

image 确定一下是否就是这个方法引发的异常?

nodyang commented 11 months ago

看不出问题原因,先不调用 FilterDeletedAndDisabled 方法,改成 query.Where(a=>a.IsDelete == false).Where(a=>a.IsEnabled == false) 试试看效果

目前改成这样了 我在试试。就双11 出现过这样的问题。还是偶发性的。

shuxinqin commented 11 months ago

出现那个异常有几种情况: 1 dbContext.Query《Entity》() Entity有IsDeleted属性,但配置了不映射数据库 2 IsDeleted属性映射了数据库,但使用如 dbContext.Query《Entity》().Select(a=> new Entity { Id = a.Id, Name = a.Name ... } ).Where(a=>a.IsDeleted ==true ) ,其中 Select lamda 里不包含 IsDeleted,后续Where又使用了 IsDeleted 属性也会报错

不过这两种用法的情况都是必现的,不会是偶发性。所以目测我也不好猜哪里的问题- -

nodyang commented 11 months ago

出现那个异常有几种情况: 1 dbContext.Query《Entity》() Entity有IsDeleted属性,但配置了不映射数据库 2 IsDeleted属性映射了数据库,但使用如 dbContext.Query《Entity》().Select(a=> new Entity { Id = a.Id, Name = a.Name ... } ).Where(a=>a.IsDeleted ==true ) ,其中 Select lamda 里不包含 IsDeleted,后续Where又使用了 IsDeleted 属性也会报错

不过这两种用法的情况都是必现的,不会是偶发性。所以目测我也不好猜哪里的问题- -

nodyang commented 11 months ago

我是研究了2天。无果才问得。之前都没有问题。最近双11 出现的。 没事我已经改了。双11 也过去了

shuxinqin commented 11 months ago

怎么说?还出现这个异常吗?