public virtual ActionResult Create(Grain grain, int farmerID, string features)
        {
            try
            {
                var repo = MvcApplication.container.Resolve<IGrainRepository>();
                grain.Features.Clear();
                foreach (string feature in features.Split(','))
                {
                    grain.Features.Add(new Feature { Name = feature });
                }
                repo.Save(grain, farmerID);

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        public void Save(Grain grain, int farmerID)
        {
            using (var transaction = _session.BeginTransaction())
            {
                try
                {
                    grain.Farmer = _session.Load<Farmer>(farmerID);
                    _session.Merge(grain);
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    if (transaction.IsActive)
                    {
                        transaction.Rollback();
                    }
                }

            }
        }