在EF4.x中处理将0/1转换为False/True的最简单方法是什么?存储的Proc返回值为0或1的列,而不转换为BIT。在我的POCO中,如果我将该字段声明为publicboolMyColumn{get;set;}我收到此错误:从具体化的“System.Int32”类型到“System.Boolean”类型的指定转换无效。这实际上是有道理的,因为EF将返回值识别为整数。我想知道是否有任何简单的方法(添加评论或可能使用流畅的api)在不触及Proc的情况下在场景后面的地图中自动将0/1转换为False/True?提前致谢!您可以做的是使用另一个属性来表示布尔表示。使用NotMapped属性对其进行修饰,以便EF不会将其视为映射。根据Other属性的值执行和If条件并返回true/false。publicClassCustomer{[NotMapped]publicboolMyColumnBool{get{return(MyColumn==1);}}publicintMyColumn{get;set;}//otherproperties}另一种选择是从存储过程返回一个BIT,这样你就不需要在C#端进行任何转换或使用任何奇怪的装饰。这意味着,您可以像这样在T-SQL中将整数值转换为BIT:selectcol1,col2,CONVERT(BIT,CASEWHENcol3ISNULLTHEN0ELSE1END)ascolWithBitFROMtable1usingSystem.Convert.ToBoolean(int)以上是C#学习教程:Whatistheeasiestwaytohandleconverting0/1toFalse/TrueinEF4.x?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
