Шаблон репозитория - POCOs или IQueryable?

Если у всех ваших дополнительных 12 классов есть дефис, вы можете назначить их с помощью селектора атрибутов с подстановочными знаками , примененного к классу .banner, например:

.banner[class*="-"] p

Демо :

.banner[class*="-"] p {
    color: red;
}








Вы также можете использовать .banner[class*=" "] p, но это будет «неудачно» технически и применимо к любому ситуации, когда у вас есть class="banner " (например, исходный класс banner, за которым следует пробел) ... в случае, если вы можете динамически добавлять или удалять классы с помощью JavaScript, PHP или чего-то еще.

Если между 12 классами нет общего символа, вам может потребоваться использовать JavaScript для их выбора или применить третий класс к элементам, которые имеют по крайней мере .banner и еще один класс, и просто выбрать этим классом. Перестройка HTML может быть лучшим решением, так что вы можете сделать свой CSS простым.

12
задан Duncan 12 April 2009 в 10:21
поделиться

2 ответа

Да, ваша версия является самой безопасной / наиболее совместимой. Вы по-прежнему можете использовать его с любыми ресурсами, не только с доступом к данным, но и с веб-службами, файлами и т. Д.

Обратите внимание, что с версией IQueryable вы по-прежнему получаете возможность работать на основе ваших классов POCO, но вы привязаны к IQueryable. Также учтите, что у вас может быть код, который использует IQueryable, а затем оказывается, что вы столкнулись с ситуацией, когда один из ORM хранилища не справляется с этим хорошо.

9
ответ дан 2 December 2019 в 21:04
поделиться

Я использую тот же шаблон, что и вы. Мне это очень нравится. Вы можете получать свои данные из любых ресурсов.

Но преимущество использования IQuerable заключается в том, что вам не нужно кодировать свой собственный API критериев, такой как OrangeCriteria.

Когда NHibernate получит полную поддержку Linq, я могу переключиться на IQueryable. .

Тогда вы получите

public class OrangeRepository: IOrangeRepository {  
    public IQueryable<Orange> GetOranges();
}
5
ответ дан 2 December 2019 в 21:04
поделиться
Другие вопросы по тегам:

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