我正在尝试做这样的事情:
int count = new Select().From(tblSchema).Where("Type & 1").IsEqualTo("1").GetRecordCount();
错误信息是:
'&'附近的语法不正确。
必须声明标量变量“@Deleted”。
是否可以使用SubSonic做到这一点?
答案 0 :(得分:0)
必须声明标量变量 “@Deleted”
第二个错误是由您正在查询的表上使用逻辑删除引起的(该表具有isDeleted或Deleted列)。
但我正在查看代码,我不确定该参数是如何进入的。从我所知道的,SqlQuery.GetRecordCount方法不会调用CheckLogicalDelete()。该错误消息是否无关?
答案 1 :(得分:0)
这似乎是SubSonic在生成要执行的SQL时命名它的参数的方式中的一个错误。
发生的事情是,SubSonic正在查看“Type& 1”,然后创建一个参数来与被叫@ Type& 10进行比较,这不是一个有效的SQL参数名称。因此,您最终将从原始查询中获得以下SQL。您应该向http://code.google.com/p/subsonicproject/
提交错误与此同时,您可以使用内联查询解决此问题:
答案 2 :(得分:-1)
关于你想要完成什么,这有点模糊,但这是最好的猜测。
int count = new Select().From(tbl.Schema).Where(tbl.TypeColumn).IsEqualTo(true).GetRecordCount();