我已经为此搜索过,但找不到任何明显相关的内容,因此在此处发布以获取一些见解。使用 LINQ/EF4。这是代码片段:
private const string JOB_FAILED = "Failed";
// other code..
var successfulJobs = context.Jobs.Where(x => x.Status != JOB_FAILED);
foreach (Job successfulJob in successfulJobs)
{
context.DeleteObject(successfulJob);
}
我希望successfulJobs 包含所有Job.Status !=“失败”的工作。但是,当 Job.Status 等于“失败”时,会执行 foreach{} 的代码。我在这里错过了一些关于 LINQ\Lambda 的基本知识吗?
编辑:按要求生成的 SQL,似乎没问题。
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Parameters] AS [Parameters],
[Extent1].[Status] AS [Status],
[Extent1].[Created] AS [Created],
[Extent1].[Modified] AS [Modified]
FROM [bws].[JobRunner_Tasks] AS [Extent1]
WHERE N'Failed' <> [Extent1].[Status]