NHibernate. Linq и MultiCriteria

Вот что я нашел:

Я нашел preact shadow dom , который позволяет реализацию теневого DOM. Теневой DOM допускает ограниченный CSS, что означает, что CSS привязан только к компоненту и не может быть подвержен влиянию извне и не может вытекать за пределы его области действия.

Однако, обратите внимание, что MS Edge в настоящее время не поддерживает теневой DOM (см. Их план ).

Я также обнаружил, что локальная область видимости CSS может быть сделана только с помощью веб-пакета. См. https://github.com/webpack-contrib/css-loader . Однако загрузчик явно заменяет локальные селекторы уникальными идентификаторами.

Пример:

:local(.className) {
  background: red;
}

приводит к:

._23_aKvs-b8bW2Vg3fwHozO {
  background: red;
}

12
задан Andrew Hanson 26 March 2009 в 06:12
поделиться

3 ответа

var query = from q in session.Linq<Person>()
            where q.FirstName.StartsWith(firstName)
            && q.LastName.StartsWith(lastName)
            && q.Phones.Any(p => p.Number.Contains(phone))
            select q;

// This block of code was found in the NHibernate.Linq source
// using NHibernate.Linq.Visitors;
// using NHibernate.Engine;
System.Linq.Expressions.Expression expression = query.Expression;
expression = Evaluator.PartialEval(expression);
expression = new BinaryBooleanReducer().Visit(expression);
expression = new AssociationVisitor((ISessionFactoryImplementor)session.SessionFactory).Visit(expression);
expression = new InheritanceVisitor().Visit(expression);
expression = CollectionAliasVisitor.AssignCollectionAccessAliases(expression);
expression = new PropertyToMethodVisitor().Visit(expression);
expression = new BinaryExpressionOrderer().Visit(expression);
NHibernateQueryTranslator translator = new NHibernateQueryTranslator(session);
object results = translator.Translate(expression, ((INHibernateQueryable)query).QueryOptions);

// My LINQ query converted to ICriteria
ICriteria resultsCriteria = results as ICriteria;
// Convert to criteria that returns the row count
ICriteria rowCountCriteria = CriteriaTransformer.TransformToRowCount(resultsCriteria);

IList multiResults = session.CreateMultiCriteria()
    .Add(resultsCriteria.SetMaxResults(20))
    .Add(rowCountCriteria)
    .List();

IList people = (IList)multiResults[0];
int resultsCount = (int)((IList)multiResults[1])[0];

из http://rndnext.blogspot.com/2009/05/using-nhibernate-multicriteria-and-linq.html

4
ответ дан 2 December 2019 в 23:08
поделиться

NHibernate.Linq сам использует NHibernateQueryTranslator для перевода из выражения LINQ в ICriteria. Вы также можете сделать это, а затем передать полученный ICriteria в ваш IMultiCriteria.

3
ответ дан 2 December 2019 в 23:08
поделиться

У меня есть решение, которое позволяет одновременно группировать стратегии выборки используя NHibernate Linq, но код является королем комплекса. Это слишком много, чтобы перечислять здесь. Я собираюсь поговорить об этом в своем блоге на devlicio.us довольно скоро. Я'

0
ответ дан 2 December 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: