繁体   English   中英

简写为布尔实体框架

[英]Casting short to boolean entity framework

我正在尝试转换一个short值,它表示我们系统中的truefalse ,-1( true ),0( false )。

我想知道是否可以在初始化模型属性的地方内联这种转换/转换。

public bool Foo {get;set;}

example: 

return db.tblSomeTable
 .Where( c => c.FooID == 1)
 .Select( c => new SomeFooModel
 {
    FooID = id,
    Foo = IsTrueOrFalse //value (-1, or 0)
 }

我尝试使用三元运算符,但语法没有意义:

IsFoo = if(IsTrueOrFalse == -1) ? true: false;, IsFoo = if(IsTrueOrFalse == -1) ? true: false;, //语法错误,很明显; 是end语句,但是是,因为该选择中有更多属性。

执行此操作的另一种方法可能是调用一个函数,该函数根据传入的值返回true或false,但我想知道是否可以用最少的代码行来完成。

有什么建议么?

谢谢

您可以使用布尔表达式

.Select(c => new SomeFooModel
 {
     Foo = (IsTrueOrFalse == -1)
 }

或条件运算符

.Select(c => new SomeFooModel
 {
     Foo = (IsTrueOrFalse == -1) ? true : false
 }

三元语句的编写方式如下:

IsFoo = (IsTrueOrFalse == -1) ? true : false

即不需要if和因为还有其他语句,所以您也不需要分号。

编辑

正如@juharr在评论中所说,如果该值不是-1 ,则IsFoo将被设置为false。 因此,也许您应该做一些额外的检查。 例如:

IsFoo = (IsTrueOrFalse == -1) ? true : (IsTrueOrFalse == 0) ? false : throw new ArgumentOutOfRangeException() //Or whatever

尽管那样很快就会变得难以理解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM