我需要使用兩個屬性的組合篩選結果列表。一個普通的SQL語句應該是這樣的:NHibernate標準 - 如何過濾屬性組合
SELECT TOP 10 *
FROM Person
WHERE FirstName + ' ' + LastName LIKE '%' + @Term + '%'
中的ICriteria NHibernate的,我最終使用是:
ICriteria criteria = Session.CreateCriteria(typeof(Person));
criteria.Add(Expression.Sql(
"FirstName + ' ' + LastName LIKE ?",
"%" + term + "%",
NHibernateUtil.String));
criteria.SetMaxResults(10);
它完美,但我不知道這是否是理想的解決方案因爲我仍然在學習NHibernate的Criteria API。什麼是推薦的選擇?
- 除了
Expression.Sql
之外還有什麼東西可以執行相同的操作嗎?我試過Expression.Like
,但無法弄清楚如何結合名字和姓氏。 - 我應該在映射類中將FullName屬性映射到公式「FirstName +」'+ LastName「嗎?
- 我應該在域對象上創建只讀FullName屬性,然後將其映射到列?
僅查詢 - 如何非常有用,不知道該選項。好像我每天都在NHibernate學習新東西。感謝您的投影代碼示例。 – DavGarcia 2010-05-30 05:58:26