如果结果中有一列或多列为null,则实体框架不返回数据



当查询返回一个或多个列为null的结果时,即使其他列有数据,查询结果也为null。这与这个堆栈溢出问题略有相似:如果一行中的第一列为null ,则实体框架会为该行返回null

然而,在我的情况下,它不是结果返回的第一列。它也不是主键列。查询在视图上。

using (var ctx = new databaseEntities())
{
return  ctx.MyView.FirstOrDefault(a => a.Column3 == someIntegerValue);
}

与Stackoverflow问题不同的是,正如您在上面看到的,我在查询中没有任何联接。视图本身具有联接。

使用的直接SQL查询

WHERE Column3 = someIntegerValue

返回一整行。实体框架查询在没有列为null时工作。该视图是使用";从数据库更新模型"然后添加选项卡。

在任何分部类或设计中都没有对视图进行任何更改。删除视图中有时返回null的两列,然后将其添加到.edmx中,可以解决此问题。这两列的源代码是udf。实体框架版本为6.4.4

您必须在Include Property 中绑定可为null的columnName

你可以试试这样的东西,

using (var ctx = new databaseEntities())
{
return  ctx.MyView.Include("ColumnName").FirstOrDefault(a => a.Column3 == someIntegerValue);
}

最新更新