实体框架6-如果查询不包含任何行,则检索null而不是默认值

djmj

实体Foo:

public int Foo { get; set; }

EF查询:

int? barX = FOOs.GetQuery().Where(f => f.x == x).Select(f => f.bar).SingleOrDefault();

如果没有行f.x == x但我想返回,则返回整数的默认值0 null

如何实现呢?

如果结果为空或列的值实际上为0,则0表示没有明确的指示!

解雇

除了在查询中进行投影外,您还可以在以下情况下拉回完整的实体和项目:

var foo = FOOs.GetQuery().Where(f => f.x == x).SingleOrDefault();
int? barX = foo != null ? (int?)foo.bar : null;

如果您担心获取整个实体,则可以返回匿名类型而不是完整类型:

var foo = FOOs.GetQuery().Where(f => f.x == x).Select(new { bar = f.bar }).SingleOrDefault();
int? barX = foo != null ? (int?)foo.bar : null;

感谢@Flater,因为我不知道这是可能的(只需将其投射在投影中):

int? barX = FOOs.GetQuery().Where(f => f.x == x).Select(f => (int?)f.bar).SingleOrDefault();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体框架6错误-ICollection不包含子实体的定义

来自分类Dev

实体框架6-时间查询

来自分类Dev

实体框架6-重用Select查询

来自分类Dev

实体框架6中的复杂子查询

来自分类Dev

实体框架6查询性能(MM关系)

来自分类Dev

实体框架6 Guid生成的null吗?

来自分类Dev

实体框架6插入重复值

来自分类Dev

实体框架6上下文未检索导航属性

来自分类Dev

在实体框架6中更改默认联结表名

来自分类Dev

实体框架6-启用迁移时不创建表

来自分类Dev

实体框架6-启用迁移时不创建表

来自分类Dev

实体框架6 ToString(),格式(DateTime格式),查询拦截

来自分类Dev

如何模拟实体框架6异步投影查询

来自分类Dev

使用实体框架6的“按查询分组”中的“案例陈述”

来自分类Dev

如何查询与实体框架的多对多关系6

来自分类Dev

实体框架6更新,其中外键引用NULL

来自分类Dev

实体框架 6 扩展迁移类以映射新值

来自分类Dev

实体框架6多对多要插入重复的行

来自分类Dev

实体框架6:添加总计的摘要行

来自分类Dev

实体框架的SQL列默认值

来自分类Dev

第一个实体框架6个非查询的预热时间为6秒

来自分类Dev

包含任何列的实体框架

来自分类Dev

实体框架包含条件

来自分类Dev

可选包含实体框架

来自分类Dev

实体框架包含条件

来自分类Dev

实体框架:查询缓慢

来自分类Dev

实体框架的子查询

来自分类Dev

实体框架选择查询

来自分类Dev

复杂实体框架查询