Question

These classes have some similar methods but seem to work slightly different.

What's the difference between them and when should I use each of them?

Was it helpful?

Solution

Detached criteria can be built up without reference to an ISession. You can later take that criteria and apply it to an ISession to get an executable ICriteria.

Use ICriteria when you have a session.

Use DetachedCriteria when you're not sure against what session the query will be executed.

Note that DetachedCriteria does not implement ICriteria -- they are not interchangeable. You must always call detachedCriteria.GetExecutableCriteria(session) to get an ICriteria instance.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top