public void NonLazyBidirectional() 
		{
			DomainModel.Single sin = new DomainModel.Single();
			sin.Id = "asfdfds";
			sin.String = "adsa asdfasd";
			Several sev = new Several();
			sev.Id = "asdfasdfasd";
			sev.String = "asd ddd";
			sin.Several.Add(sev);
			sev.Single = sin;

			using( ISession s = OpenSession() )
			using( ITransaction t = s.BeginTransaction() )
			{
				s.Save(sin);
				t.Commit();
			}

			using( ISession s = OpenSession() )
			using( ITransaction t = s.BeginTransaction() )
			{
				sin = (DomainModel.Single)s.Load( typeof(DomainModel.Single), sin );
				t.Commit();
			}

			using( ISession s = OpenSession() )
			using( ITransaction t = s.BeginTransaction() )
			{
				sev = (Several)s.Load( typeof(Several), sev );
				t.Commit();
			}

			using( ISession s = OpenSession() )
			using( ITransaction t = s.BeginTransaction() )
			{
				s.Find("from s in class Several");
				t.Commit();
			}

			using( ISession s = OpenSession() )
			using( ITransaction t = s.BeginTransaction() )
			{
				s.Find("from s in class Single");
				t.Commit();
			}

			using( ISession s = OpenSession() )
			using( ITransaction t = s.BeginTransaction() )
			{
				s.Delete( "from Single" );
				t.Commit();
			}
		}
		public void EmbeddedCompositeProperties()
		{
			ISession session = OpenSession();
	   
			DomainModel.Single s = new DomainModel.Single();
			s.Id = "my id";
			s.String = "string 1";
			session.Save(s);
			session.Flush();
			session.Clear();
	   
			IQuery query = session.CreateSQLQuery("select {sing.*} from Single {sing}", "sing", typeof( DomainModel.Single ));
	   
			IList list = query.List();
	   
			Assert.IsTrue(list.Count==1);
	   
			session.Clear();
	   
			query = session.CreateSQLQuery("select {sing.*} from Single {sing} where sing.Id = ?", "sing", typeof( DomainModel.Single ));
			query.SetString(0, "my id");
			list = query.List();
	   
			Assert.IsTrue(list.Count==1);
	   
			session.Clear();
	  
			query = session.CreateSQLQuery("select s.id as {sing.Id}, s.string_ as {sing.String}, s.prop as {sing.Prop} from Single s where s.Id = ?", "sing", typeof( DomainModel.Single ));
			query.SetString(0, "my id");
			list = query.List();
	   
			Assert.IsTrue(list.Count==1);
	   
	   
			session.Clear();
	   
			query = session.CreateSQLQuery("select s.id as {sing.Id}, s.string_ as {sing.String}, s.prop as {sing.Prop} from Single s where s.Id = ?", "sing", typeof( DomainModel.Single ));
			query.SetString(0, "my id");
			list = query.List();
	   
			Assert.IsTrue(list.Count==1);
	   
			session.Delete( list[0] );
			session.Flush();
			session.Close();
		}
		public void PolymorphicCriteria()
		{
			ISession s = OpenSession();
			Category f = new Category();
			DomainModel.Single b = new DomainModel.Single();
			b.Id = "asdfa";
			b.String = "asdfasdf";
			s.Save( f );
			s.Save( b );
			IList list = s.CreateCriteria( typeof( object )).List();
			Assert.AreEqual( 2, list.Count );
			Assert.IsTrue( list.Contains( f ) );
			Assert.IsTrue( list.Contains( b ) );
			s.Delete( f );
			s.Delete( b );
			s.Flush();
			s.Close();
		}