"문제"가 아니라 실제로이 코드를 개발하는 방법을 찾았습니다. 당신이 볼 수 있듯이, 내가 사용,엔티티 프레임 워크로 엔티티를 업데이트하는 더 좋은 방법이 있습니까?
public void UpdateCountry(Country country)
{
EnsureValidForUpdate(country);
// UPDATE
var countryToUpdate = _groupsRepository.getCountryById(country.CountryId);
countryToUpdate.CountryId = country.CountryId;
countryToUpdate.Name = country.Name;
countryToUpdate.ISOCode = country.ISOCode;
_groupsRepository.SaveChanges();
}
사실 :
[HttpGet]
public ActionResult Edit(int id)
{
var country = _groupsRepository.getCountryById(id);
Mapper.CreateMap<Country, CountriesEditViewModel>();
CountriesEditViewModel viewModel = Mapper.Map<Country, CountriesEditViewModel>(country);
return View(viewModel);
}
//
// POST: /CountriesAdmin/Edit/5
[HttpPost]
public ActionResult Edit(int id, CountriesEditViewModel viewModel)
{
try
{
if (ModelState.IsValid)
{
Mapper.CreateMap<CountriesEditViewModel, Country>();
Country country = Mapper.Map<CountriesEditViewModel, Country>(viewModel);
country.Name = IntranetTools.UppercaseFirst(country.Name.Trim());
country.ISOCode = country.ISOCode.ToLower();
_countryValidationService.UpdateCountry(country);
}
}
catch (RulesException ex)
{
ex.CopyTo(ModelState);
}
if (ModelState.IsValid)
return RedirectToAction("Index");
else return View(viewModel);
}
그리고 내 검증 서비스 (도메인 층) :
나는 내 나라 컨트롤러 (편집 방법) (웹 UI 층)가 내 국가 엔티티 (Entity Framework)와 내 뷰 모델을 매핑하는 오토 맵퍼. 유효성 검사를하고 데이터베이스에 내 개체 (오류가없는 경우)를 업데이트하는 유효성 검사 서비스를 사용합니다. 사실은이 객체를 저장하기 위해 ID를 사용하여 객체를 DB에서 가져와야한다고 생각합니다. 나는
var countryToUpdate = _groupsRepository.getCountryById(country.CountryId);
countryToUpdate.CountryId = country.CountryId;
countryToUpdate.Name = country.Name;
countryToUpdate.ISOCode = country.ISOCode;
_groupsRepository.SaveChanges();
저장하는 더 나은 솔루션 거기에 (내가 때마다 내 개체의 모든 필드를 매핑 및 DB에서 국가를 얻을 싶지 않기 때문에) 내 개체를 업데이트 할 수있는 더 나은 솔루션이 어쩌면이 있다고 생각 엔티티 Framwork과 내 개체 또는 나는 선택의 여지가 없어?
감사합니다.
고맙습니다. 나는이 방법을 몰랐다. 사실, DB에서 먼저로드하고 싶지 않았습니다. 왜냐하면 더 많은 자원을 사용한다고 생각했기 때문입니다. – Areasta