我想在nhibernate中執行以下操作。我在nhibernate上使用條件查詢。標準查詢是否支持這個sql語句的等價物?將SQL查詢轉換爲NHibernate標準查詢
select * from table where tableid in (1,2,3,4)
我想在nhibernate中執行以下操作。我在nhibernate上使用條件查詢。標準查詢是否支持這個sql語句的等價物?將SQL查詢轉換爲NHibernate標準查詢
select * from table where tableid in (1,2,3,4)
隨着QueryOver接口:
session.QueryOver<MappedType>().AndRestrictionOn(m => m.tableid).IsIn(new int[] { 1, 2 , 3 , 4 }).List();
或
session.QueryOver<MappedType>().Where(m=> m.tableid.IsIn(new int[] { 1, 2 , 3 , 4 })).List();
或與標準接口:
session.CreateCriteria<MappedType>().Add(Expression.In("tableId", new int[] { 1, 2, 3, 4 })).List<MappedType>();
是它,即:
ISession session = GetSession();
var criteria = session.CreateCriteria(typeof(Product));
var ids= new[] {1,2,3};
criteria.Add(new InExpression("Id", ids));
var products = criteria.List<Product>();
簡單:
CurrentSession
.CreateCriteria(typeof(MappedType))
.Add(Expression.In("MappedType.MappedId", new int[] { 1, 2, 3, 4 }));