我有一個查詢,我只對行計數感興趣,但NHibernate產生的查詢不適用於Sybase。我已經有了一個自定義的Sybase方言,但我無法找到覆蓋rowcount的位置。LINQ中的NHibernate RowCount產生SQL異常
考慮下面的代碼:
var a = from b in table where b.something = 5 select b
var rows = a.Count
生成類似這樣的SQL:
select cast(count(*) as INTEGER) as p1 from table
我不知道爲什麼NHibernate的希望蒙上計數結果,我也能覆蓋方言或其他地方,所以NHibernate不包括演員。計數的結果可以轉換爲整數。
如果我使用QueryOver,事情工作完美。然而,問題是,我的條件取決於一個字符串的長度(是的,分貝設計可能會更好,但我目前可以不改變它)。在條件工作中使用linq調用.Length字符串。但是,我無法在QueryOver表達式中使用字符串長度作爲條件。我還需要一個包含操作,它與linq一起使用,但不是QueryOver。
有沒有辦法來重寫如何生成計數查詢,所以它會工作? 我只是有興趣,如果有任何行匹配,而不是計數,有沒有不同的方式做到這一點? 可以改爲QueryOver?接口使用SQL長度和在運算符中?
這爲我工作,謝謝。 – Staale 2011-05-09 07:47:08