gpt4 book ai didi

c# - Linq-to-sql 代码不返回结果,即使生成的 sql 返回结果

转载 作者:行者123 更新时间:2023-11-30 13:04:21 25 4
gpt4 key购买 nike

我的应用程序中有以下代码

var query = context.xosAssets.Where(x => x.GSA == 0).Take(INDEX_ASSET_QUERY_COUNT);
var assets = query.ToList();

// Debug
string message = string.Format("Assets waiting for indexing: {1}{0}Database:{3}{0}Query: {2}",
Environment.NewLine, query.Count(), query.ToString(), context.Connection.Database);
System.Diagnostics.EventLog.WriteEntry("GSAFeed", message, System.Diagnostics.EventLogEntryType.Information);

运行时,query.Count() 为零,assets.Count 为零,因为没有返回结果。但是,这是不正确的,因为此数据库中的所有记录都将其 GSA 字段设置为零。

当我从 query.ToString() 获取输出并运行它(将 @p0 替换为 0)时,我得到了所有正确的响应。我已经验证我在与 context.Connection.Database 输出的数据库完全相同的数据库上,而且我已经没有关于可能出错的选项了。

为什么 Linq-to-sql 没有返回任何结果,即使实际的 sql 返回了结果?

最佳答案

我过去遇到过这样的问题,我通常以长格式重写 Linq2Sql,它让我摆脱了麻烦。不够专业,不知道为什么,但它可能会对您有所帮助。

编辑像这样:

var query = (from x in context.xosAssets
where x.GSA == 0
select x).Take(INDEX_ASSET_QUERY_COUNT);

这应该返回 IQueryable,因此无需执行 .ToLIst()

关于c# - Linq-to-sql 代码不返回结果,即使生成的 sql 返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9637052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com