Можно ли в любом случае использовать NHibernate
таким образом, чтобы он мог выполнять запрос / запросы только после использования возвращенного объекта запроса / оператора ... точно так же, как EF
делает это?
Для большинства случаев с EF
он не отправит и не выполнит фактический запрос к базе данных, пока не будет использован возвращенный объект linq- «оператора» .. например:
var x = for e in entities.MyTable
select e;
Этот еще не выполнен!
Что означает, что я могу mofidy x-объектов "linq-query", однако мне нравится без фактического "извлечения" каких-либо данных из базы данных:
x = x.Where(i=>i.SomeThing = someThing);
Все еще не выполнено!
x.ToList<MyTable>()
Теперь он выполнен!
Но в NHibernate
запрос выполняется, как только транзакция закрывается или фиксируется из того, что я понял ... и в большинстве случаев это уже делается в хранилище.Таким образом, вы не можете просто в любом другом месте изменить запрос и затем отправить его в базу данных.Потому что запрос уже отправлен, и это может означать, что вы позже только измените то, что «отображается» из результата.
Возможно, я неправильно понял это, поэтому, пожалуйста, исправьте меня, если я ошибаюсь.
Огромное спасибо заранее!