以下工作如预期(LINQ to Entities):
var topics = (from t in ctx.Topics where t.SubjectId == subjectId && t.ParentId == null select new { t.Title, t.Id }).ToList();
但是,下面的语句什么也不返回:
int? parent = null;
var topics = (from t in ctx.Topics where t.SubjectId == subjectId && t.ParentId == parent select new { t.Title, t.Id }).ToList();
主题。ParentId是一个可空的int类型。这很容易解决,但这让我很困惑。有人能解释一下吗?
你肯定不是第一个观察到这一点的人…有趣的…行为。
http://connect.microsoft.com/data/feedback/details/607404/entity-framework-and-linq-to-sql-incorrectly-handling-nullable-variables简而言之,很难处理表示null的不同方式。