我在我的应用程序下面的代码LINQ到SQL代码没有返回结果,即使生成的SQL不会返回结果
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()
输出并运行它(替换为0 @p0
),我得到的所有的正确答案。我已经验证了我“完全相同的数据库M上为正在context.Connection.Database
输出,我跑出来的什么可能是错误的选择。
为什么LINQ到SQL没有返回结果,即便是实际的SQL不?
什么是'INDEX_ASSET_QUERY_COUNT'设置? – 2012-03-09 15:58:53
什么数据类型是'.GSA'? – 2012-03-09 15:59:10
'GSA'是一个short,而'INDEX_ASSET_QUERY_COUNT'是一个int const,设置为250,它在输出SQL中的TOP()调用中正确显示。 *编辑*前夕没有顶部通话它仍然失败。 – KallDrexx 2012-03-09 16:00:56