Ai满嘴顺口溜,想考研?浪费我几个小时

打印 上一主题 下一主题

主题 2017|帖子 2017|积分 6051

Trae + claude3.7
事情的经过是这样的:
我有个方法代码如下:
  1.        /// <summary>
  2.         /// 获取客户端列表
  3.         /// </summary>
  4.         /// <param name="input">查询条件参数,包含搜索、排序和分页信息</param>
  5.         /// <param name="cancellationToken">异步取消标记</param>
  6.         /// <returns>客户端数据集合</returns>
  7.         public async Task<Khdsc> GetClientsAsync(Hqkhdsr input, CancellationToken cancellationToken = default)
  8.         {
  9.             var q = db.Clients.AsNoTracking();
  10.             //条件和排序...略...
  11.             logger.LogWarning("执行GetClientsAsync" + tp.GetUtcNow());
  12.             <strong>var total = await q.CountAsync(cancellationToken);
  13.             </strong>//await Task.Delay(3000);
  14.             q = q.OrderBy(input.sort + " " + input.Order).Skip(input.Offset).Take(input.Limit);// .Page(input.Limit, input.Offset / input.Limit + 1);
  15.             <strong>var list = await q.ToListAsync(cancellationToken);
  16.             </strong>return new Khdsc
  17.             {
  18.                 BridgePort = default,
  19.                 BridgeType = default,
  20.                 Ip = default,
  21.                 Total = total,
  22.                 Rows = list.Select(MapClientEntityToKhdrow).ToList(),
  23.             };
  24.         }
复制代码
然后执行报错了:
  1. 在 Microsoft.EntityFrameworkCore.Infrastructure.Internal.ConcurrencyDetector.EnterCriticalSection()
  2. 在 Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.<MoveNextAsync>d__20.MoveNext()
  3. 在 System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult()
  4. 在 Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.<ToListAsync>d__67`1.MoveNext()
  5. 在 Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.<ToListAsync>d__67`1.MoveNext()
  6. 在 YCSDK.Sdf.<GetClientsAsync>d__12.MoveNext() 在 D:\fyjiot\src\YCSKDFolder\YCSDK\Sdf.cs 中: 第 171 行
  7. 在 YCSDK.RCL.Client.ClientList.<LoadClientListAsync>d__17.MoveNext() 在 D:\fyjiot\src\YCSKDFolder\YCSDK.RCL\Client\ClientList.razor.cs 中: 第 77 行
复制代码
有经验的老表一看就晓得是多线程使用同一个dbcontext实例出的问题。所以我仔细排查了我的代码,实在看不出问题,想想问问Ai吧,对话如下:



看到这里我开始猜疑我自己了,也想不通微软为什么要在efcore9中做出这样的改变,会不会是ef9有bug?这样设计不合理啊。
然后我就开始换豆包、chatgpt、千问,各种问,它们根本没法提供有价值的信息。然后又直接各种搜索,由于ef9太新,也搜不出啥东东来。
然后又建测试项目,单独测试又没问题,这个时候我就开始猜疑开始Ai给的回答了,
终极各种折腾发现问题是我用的antblazor革新数据默认是开了线程的,重点是界面部分我也是让Ai它帮我写的。
到这里问题就解决了。
 
我想说的是,我开始问ai它给了我一个错误的回答,辛亏我了解这里,所以质疑它,但它居然再次回答时说得有理有据,我不信邪再次问他是不是ef9的版本导致的,它也说得头头是道。
如果不熟悉ef的人估计会被它带偏,对ef9会产生一种错误的熟悉,搞得欠好还会去把老项目都重构下,浪费时间,以后发现不是ef9的问题又重构回去,再浪费一次时间。
 
所以感觉目前的Ai有个陷阱,就是让不了解某个范畴的人,可以用Ai去完成那个范畴的事,同时埋一堆雷在那里。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表