2016-12-06 64 views
0

我的一个实体有一个布尔属性。其中一个linq查询过滤此属性。DotConnect低效布尔比较SQL代

context.Items.Where(one => one.BoolProperty == true) 

当我查看生成的SQL代码,然后将查询转换为

... WHERE "Extend1".BOOL_PROPERTY <> 0 

这显然是一个问题,因为该数据库不走索引反而使得全表的访问。

我们使用的是.NET 4.6,实体框架6,DevArt 8.5和Oracle 12 Oracle中的布尔字段是一个数字(1,0)

+0

在这种情况下,位图索引将起作用。但是,位图索引并不总是合适的。请参阅[位图索引与B-tree索引:哪个和何时?](http://www.oracle.com/technetwork/articles/sharma-indexes-093638.html)。你试过了吗?(一个=> one.BoolProperty!= false)'? –

回答