1: //entity is loaded into first level cache
2: var c1 = session.Get<Customer>(CustomerId);
3:
4: //same entity is returned
5: var c2 = session.Query<Customer>().Where(x => x.Id == CustomerId).Single();
6: Debug.Assert(Object.ReferenceEquals(c1, c2));
7:
8: var c3 = session.CreateQuery("from Customer c where c.Id = :id").SetParameter("id", CustomerId).UniqueResult<Customer>();
9: Debug.Assert(Object.ReferenceEquals(c1, c3));
10:
11: var c4 = session.CreateCriteria<Customer>().Add(NHibernate.Criterion.Expression.IdEq(CustomerId)).UniqueResult<Customer>();
12: Debug.Assert(Object.ReferenceEquals(c1, c4));
13:
14: var c5 = session.QueryOver<Customer>().Where(x => x.Id == CustomerId).SingleOrDefault();
15: Debug.Assert(Object.ReferenceEquals(c1, c5));
16:
17: //get updates from the DB
18: session.Refresh(c1);
19:
20: //get the current value from the DB
21: var n2 = session.Query<Customer>().Where(x => x.Id == CustomerId).Select(x => x.Name).Single();
22:
23: var n3 = session.CreateQuery("select Name from Customer c where c.Id = :id").SetParameter("id", CustomerId).UniqueResult().ToString();
24:
25: var n4 = session.CreateCriteria<Customer>().Add(NHibernate.Criterion.Expression.IdEq(CustomerId)).SetProjection(NHibernate.Criterion.Projections.Property("Name")).UniqueResult<String>(); ;
26:
27: var n5 = session.QueryOver<Customer>().Where(x => x.Id == CustomerId).Select(x => x.Name).SingleOrDefault<String>();