我有這個例子的代碼...NHibernate的Queryover不區分大小寫ISIN
Result = session.QueryOver<Lfee_Exc>().WhereRestrictionOn(x => x.FirstName)
.IsIn(ListOfFirstNames).List();
有沒有什麼辦法讓我的區分大小寫的Oracle服務器這種情況下insenstive或大寫x.ArNumber?
我有這個例子的代碼...NHibernate的Queryover不區分大小寫ISIN
Result = session.QueryOver<Lfee_Exc>().WhereRestrictionOn(x => x.FirstName)
.IsIn(ListOfFirstNames).List();
有沒有什麼辦法讓我的區分大小寫的Oracle服務器這種情況下insenstive或大寫x.ArNumber?
轉換ListOfFirstNames以大寫在前,然後:
session.QueryOver<Lfee_Exc>()
.Where(Restrictions.In(Projections.SqlFunction(
"upper", NHibernateUtil.String,
Projections.Property<Lfee_Exc>(x => x.FirstName)),
ListOfFirstNames))
感謝。有沒有的內置sqlfunctions那裏名單?似乎無法在Google上找到詳盡的列表。 – gt124 2011-03-30 16:35:58
@ gt124:它們取決於方言,標準的有在https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs,尋找特定的人https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/nhibernate/src/NHibernate/Dialect(保留繼承鏈記:MsSql2008從MSSQL2005繼承等) – 2011-03-30 19:51:46
好的謝謝你,會來看看。 – gt124 2011-03-30 20:13:33
不認爲這是可能的ISIN作爲操作的ICriteria不可用。 (底層實現QueryOvers被解析爲條件。)有一個IsInsensitiveLike拉姆達限制算子雖然。 – WorldIsRound 2011-03-29 21:17:12