实体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] 删除。
我来说两句