【问题标题】:Linq to Entity Framework 4 query counting but not returning resultsLinq to Entity Framework 4 查询计数但不返回结果
【发布时间】: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


【解决方案1】:

你在 where 语句中使用了私有成员吗?

【讨论】:

  • 不确定什么会创建私有成员。 “id”列是数据库列。
  • 我确实看到了如何将成员设为私有。不,那不是我的问题。不过有趣的想法。
  • 我的意思是,在类中,您拥有写入和写入私有成员的公共属性。当您编写 linq 时,您可以使用其中任何一种,但只有公共属性的才能按预期工作。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 2017-03-19
  • 2021-06-02
  • 1970-01-01
相关资源
最近更新 更多