I'll just post the code:
public IList<Dish> GetByNameDishTypes(IEnumerable<string> names,
IEnumerable<string> dishTypes)
{
// return dishes (ie food) whose name is in the names enumerable,
// or whose type is in the dish types enumerables
// (this would be 'breakfast', 'dinner') ..
var namesArr = names != null ? names.ToArray() : new string[0];
var dishTypesArr = dishTypes != null ? dishTypes.ToArray() : new string[0];
var criteria = this.Session.CreateCriteria<Dish>();
criteria.CreateAlias("DishType", "dt");
criteria.Add(
Restrictions.Or
(
Restrictions.In("Name", namesArr),
Restrictions.In("dt.Name", dishTypesArr)
));
return criteria.List<Dish>();
/* get this to work?
Dish d = null;
DishType dt = null;
return this.Session.QueryOver<Dish>(() => d)
.JoinAlias(() => d.DishType, () => dt)
.Where(
Restrictions.Or
(
Restrictions.In(d.Name, namesArr),
Restrictions.In(dt.Name, dishTypesArr)
))
.List<Dish>(); */
}
So, I'd like to know how to do this with QueryOver. This QueryOver code I posted throws a null reference exception. The criteria code works.
Thank you :)
using
I have to include to get the lambdas to work properly? I get errors for the() => d
and() => dt
stuff. – Terat