Отставая в мире ORM и современного доступа к данным, я стремлюсь отойти от DataSets ( shudder ) и перейти к надлежащей структуре сопоставления.
Я только что освоил Linq to SQL, и сейчас я изучаю NHibernate с целью его использования в нашем следующем проекте.
При использовании старой школы sql и наборов данных ваши sql запросы, очевидно, возвращают только те данные, которые вы хотите. Я также понимаю, что L2S также достаточно умен, чтобы оценить предложения where, чтобы он всегда возвращал только те объекты, которые вы запрашивали. NHibernate то же самое? И то же самое с Линк Айенде в NHibernate?
Под этим я подразумеваю, если я делаю эквивалент:
Select * from customers where name = "fred"
доставит ли он каждого клиента в память, а затем отфильтрует не-фредов, или он достаточно умен, чтобы получить только то, что ему нужно в первую очередь?
Если это разумно, каковы предостережения? Существуют ли определенные типы запросов, которые не могут быть оценены таким образом? Какие проблемы с производительностью мне нужно знать?
Спасибо
Andrew