obs*_*sid 6 sql-server-ce linq-to-sql
我正在尝试针对SQL CE数据库执行简单的小LINQ To SQL查询.
var result = from item in items
where item.IsTrue == true
select item;
Run Code Online (Sandbox Code Playgroud)
问题是该IsTrue属性是bit数据库bool中的一个字段(在CLR中).当它进入CE中的SQL时,我得到SELECT ... WHERE ([t0].IsTrue = 1).. 1值是SqlCe的整数,它默认情况下不会抛出它.
我在该列上的索引(IsTrue列)未被使用.相反,它会尝试istrue将数据库中的所有值转换为整数,并将它们与1进行比较.
如何生成LINQ To SQL WHERE ([t0].IsTrue = Cast(1 as bit))...?我需要以某种方式强制将该值转换为a bit,从而允许使用索引?
我试过了:
item.IsTrue == Convert.ToBoolean(1) item.IsTrue == Convert.ToBoolean("true")item.IsTrue == (bool)true)希望得到表达式树在其中有一个强制转换,以便它转换为LINQ To SQL中的强制转换,但我似乎无法找到方法.有任何想法吗?
| 归档时间: |
|
| 查看次数: |
3978 次 |
| 最近记录: |