【发布时间】:2011-11-02 12:13:22
【问题描述】:
我有点困惑为什么这段代码会在一个列表中产生 2 条记录(行为适当):
var historiesToRemove = new List<WorkHistory>();
foreach (var history in this.WorkHistories)
{
if (history.Tool.Equals(item))
{
historiesToRemove.Add(history);
}
}
虽然这段代码产生一个空列表:
var historiesToRemove = this.WorkHistories.Where(history => history.Tool.Equals(item)).ToList();
任何想法为什么会发生这种情况?
原因:
我没有正确实现 IDbSet 的 IQueryable 属性。这使我的 LINQ 行为错误。
【问题讨论】:
-
WorkHistory 是 IDbSet
? -
是的。问题已解决,请阅读已接受答案的 cmets。
-
您接受的答案已被版主删除(可能是因为质量低下)。我认为 Ben Robinson 和 tvanfosson 的答案都是正确的。 (新)选择是你的:)
标签: c# .net linq entity-framework linq-to-entities