【发布时间】:2011-03-13 22:23:07
【问题描述】:
我有一个类似的查询:
var fooQuery = (from x in edm.stuff where x.col == DesiredVal select x)
'stuff' 是一个视图。当我计算结果时,我得到'1'。当我 First() 或 FirstOrDefault() 我得到空值。
var fooCount = fooQuery.Count(); // results in 1
var fooResult = fooQuery.FirstOrDefault(); // results in null
这对我来说没有意义。是否有这种情况应该发生?
【问题讨论】:
-
好吧,我认为这不可能。尝试检查生成的 SQL。我确实认为问题出在其他地方。
-
是的,听起来确实很奇怪。你试过 Any()、Single()、ToList() 吗?这些返回什么?
-
因为它是一个视图,所以我有任意索引,并且我在列上建立了一个关系和一个导航属性(它是 nvarchar)。视图中的列来自外部连接,因此有时为空,如果不是,它并不总是出现在相邻的(通过实体设计器创建的)普通表中。我可以数出它在那里,但无法用 First() 或 Any() 检索它。我没有尝试其他的。这显然是一个边缘案例。这可能是一个错误吗?也许我应该建立一个例子。
标签: entity-framework linq-to-entities c#-4.0