“将小小视为布尔”和实体框架4

时间:2011-07-11 21:01:12

标签: .net mysql entity-framework tinyint

我有一种情况需要将MySQL数据库中的TINYINT视为数值,而不是TRUE / FALSE。

据我所知,MySQL .Net Connector用于将TINYINT映射为Byte。不幸的是,似乎不再是这种情况,TINYINT现在映射到布尔值。我需要像往常一样将TINYINT转换为Byte。我知道连接字符串参数'Treat Tiny As Boolean = False'应该可以解决这个问题。出于某种原因,这在使用实体框架时似乎不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

利用我所做的研究和DustinDavis的评论,我终于能够找到问题的解决方案。诀窍是在连接字符串中添加'Treat Tiny As Boolean = False',然后在bot中编辑edmx文件“SSDL内容”部分和“CSDL内容”部分。

在您找到“bool”的SSDL中,将其替换为“tinyint”,并在CSDL中找到“Boolean”,将其替换为“SByte”。如果你愿意,你也可以使用“int”和“Int32”;但我相信MySQL实际上给你一个“SByte”。在我的情况下,我正在读取通过Access前端输入数据库的数据,该前端使用-1 / 0表示True / False。这就是我需要SByte的原因。