Мне нужно хранить значение независимо от родительского объекта, поэтому, если я захочу удалить его, мое значение останется в программе.
Я не использую базу данных, мой MVC связан сфреймворк библиотеки с репозиториями
Модель
namespace FarmMVC.Models
{
public abstract class AnimalViewModel
{
protected AnimalViewModel()
{
}
protected AnimalViewModel(AnimalBase a)
{
Name = a.Name;
Age = a.Age;
Weight = a.Weight;
Breed = a.Breed;
Gender = a.Gender;
ParticularSigns = a.ParticularSigns;
Color = a.Color;
Meat = a.Meat;
}
public int Meat { get; set; }
public int MeatProduction { get; set; }
}
}
Контроллер
namespace FarmMVC.Controllers
{
public class AnimalsController : Controller
{
public ActionResult GoatMilk(string name)
{
var rep = new GoatRepository();
var goat = rep.GetByName(name);
var model = FarmFactory.CreateAnimalModel<GoatViewModel>(goat) as GoatViewModel;
model.MilkProduction = rep.MilkProduction(goat);
var list = rep.GetAll().Select(g => FarmFactory.CreateAnimalModel<GoatViewModel>(g)).ToList();
return View("~/Views/Animals/Goats.cshtml", list);
}
}
}
Вид
@model IEnumerable<FarmMVC.Models.GoatViewModel>
<div class="panel panel-default">
<div class="panel-body">
@Html.DisplayNameFor(model => model.MeatProduction)
@Model.Sum(i => i.Meat)
</div>
</div>
Как я могу отслеживатьнад каким объектом я работаю
namespace FarmMVC.Factories
{
public static class FarmFactory
{
public static T CreateAnimalModel<T>(AnimalBase a)
where T : AnimalViewModel
{
return (T)Activator.CreateInstance(typeof(T), a);
}
}
}
Метод
namespace Farm.Repositories
{
public class GoatRepository : GenericRepository<Goat>
{
public int MeatProduction(Goat goat)
{
if (goat == null)
{
throw new ArgumentNullException(nameof(goat));
}
if (goat.Age > 13 && goat.Weight >= 50 && goat.Weight <= 100)
{
goat.Meat += getrandom.Next(3, 6);
Remove(goat);
}
else if (goat.Weight > 100)
{
goat.Meat += getrandom.Next(5, 9);
Remove(goat);
}
else if (IsDead(goat))
{
goat.Meat += getrandom.Next(2, 4);
Remove(goat);
}
return goat.Meat;
}
}
}
В последних двух строках контроллера мне нужно хранить все внутри списка, так как я работаюв IEnumerables, но поскольку я уже удалил объект внутри метода, я ничего не получаю, но мне нужно отслеживать значение Meat
Спасибо