public void Update(Product product)
		{
			using (ISession session = NHibernateHelper.OpenSession()) {
				using (ITransaction transaction = session.BeginTransaction()) {
					session.Update(product);
					transaction.Commit();
				}
			}
		}
		public void Can_add_new_product()
		{
			var product = new Product { Name = "Apple", Category = "Fruits" };
			IProductRepository repository = new ProductRepository();
			repository.Add(product);

			// use session to try to load the product
			using (ISession session = _sessionFactory.OpenSession())
			{
				var fromDb = session.Get<Product>(product.Id);
				// Test that the product was successfully inserted
				Assert.IsNotNull(fromDb);
				Assert.AreNotSame(product, fromDb);
				Assert.AreEqual(product.Name, fromDb.Name);
				Assert.AreEqual(product.Category, fromDb.Category);
			}
		}
		private bool IsInCollection(Product product, ICollection<Product> fromDb)
		{
			foreach (var item in fromDb)
				if (product.Id == item.Id)
					return true;
			return false;
		}