当前位置: 首页 > 编程语言 > C#

entity framework:将tinyint映射到布尔值分享

时间:2023-04-10 13:24:24 C#

C#学习教程:实体框架:将tinyint映射到boolean我尝试将生成的基础类型更改为布尔值,但出现编译错误Invalidmembermappingspecified。'Edm.Boolean[Nullable=False,DefaultValue=]'类型的成员...这可能在4.0中吗?我不打算将tinyint列用作布尔值。这是由另一个使用hibernate的团队自动完成的,显然是为了mysql兼容性。很明显,tinyint的值大于2。我正在寻找一种方法来映射它,以便接受1的任何东西都是假的,或者接受0的任何东西都是真的。它对我有用吗?有没有办法将各种类型的翻译器插入EF?从MSDN的IntegerTypes页面,我们看到tinyint类型表示0到255之间的整数。相比之下,bool只表示二进制0或1。将默认映射从byte更改为bool(如果可能的话,这不根据此页面似乎是这种情况)没有意义-例如,您如何将值42(有效的tinyint)表示为bool?如果您需要具有bool类型属性的实体,我建议将其映射到bit类型的列。事实上,数据库中经常使用整数的主要原因是因为许多数据库引擎不允许位字段上的索引。大多数数据库引擎都试图将“内部”字节中的多个位域分组到安全空间中。因此,位字段实际上不可用于索引。事实上的标准是0等于false,所有其他值都等于true。但是,EF不支持这种映射。最好的方法是使用声明为字节的私有影子字段,映射到EF。其次,您创建一个别名布尔属性,您的代码将使用它。使用EF映射私有属性需要一些反射代码。以上就是C#学习教程:entityframework:mappingtinyinttobooleanvalues。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: