мне нужно сделать выбор следующегоICriteria добавления или ограничения
select * from produtos where Value = 10 or Value = 15 or Value= 20 ....
в том, что я не знаю, сколько значения наступят, то это будет в цикле списка, который будет решать пользователь сколько значений будет ... проблема в том, что если я Критерии
ICriteria criterion = session.createCriteria(typeof (Product) "produto"). SetCacheable (true);
criterio.Add (Restrictions.Eq ("produto.Valor", 10));
criterio.Add (Restrictions.Eq ("produto.Valor", 15));
criterio.Add (Restrictions.Eq ("produto.Valor", 20));
производится с помощью выбора пункта «и»
select * from produtos where Value=10 and Value = 15 and Value= 20 ....
не может использовать ограничение «in», потому что я могу иметь место в Restrictions.Eq Restrictions.Ge или Restrictions.Le или любом другом разделе ...
Есть какой-то способ просто добавить предложения в критерии? что-то вроде
criteria.Add (Restrictions.Or (Restrictions.Eq ("produto.Valor", 10)));
criteria.Add (Restrictions.Or (Restrictions.Eq ("produto.Valor", 15)));
criteria.Add (Restrictions.Or (Restrictions.Eq ("produto.Valor", 20)));
criteria.Add (Restrictions.Or (Restrictions.Eq ("produto.Valor", 25)));
Я понимаю, что он использует какие-то слова, как ссылка, но не понимаю, как это могло бы помочь мне поехать верхом на выбор, например, что у меня есть Еогеасп и для каждого элемента мне нужно получить эту Еогеасп добавление «или» в критериях,
foreach (var item in items)
{
criteria.Add("or item.Valor =" item.Valor);
}
Я могу только критериев в этом:
foreach (var item in items)
{
criteria.Add(Restrictions.Eq("item.Valor", item.Valor));
}
Что бы «и» или. Но это не могло бы или не могло бы добавить к этому еще один критерий.
Я бы хотел, чтобы в течение одних и те же ситуаций
foreach (var item in items)
{
var items = session.QueryOver<Item>()
.WhereRestrictionOn(c => c.Valor item.Valor == | |?)
.List<Item>();
}
ли есть причина, почему не используется API QueryOver? :) –
извините, не знаю этого ... Можете ли вы привести мне пример того, как код будет в C#, если возможно – Maicon
О, [здесь целая статья] (http://nhforge.org/blogs/nhibernate/ архив/2009/12/17/queryover-in-nh-3-0.aspx) по теме, наслаждайтесь :) NHibernate также имеет отдельный LINQ-провайдер, который вы также можете проверить, хотите ли вы ... –