asp net 코어 + ef 코어 2.0 웹 API 프로젝트에서 아래와 같이 정의 된 put 메소드를 사용하고 있습니다.이 엔티티의 각 속성을 하나 그것은 아주 잘 작동, 그래서 정말 문제가없는하지만 난 각각의 특성을 하나 하나 복사 부분을 피하기 위해이 경우 방법이 궁금엔티티 프레임 워크 코어 2 : 쉽게 객체와 그것의 관계를 업데이트하십시오.
public async Task<IActionResult> PutCIApplication([FromRoute] Guid id, [FromBody] CIApplication cIApplication)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != cIApplication.ID)
{
return BadRequest();
}
string userLang = HttpContext.Request.Headers["UserCulture"].ToString();
var dbCIApplication = await _context.CIApplications.Include(c => c.Translations).Include(c => c.DeploymentScenarios).SingleOrDefaultAsync(m => m.ID == id);
if (dbCIApplication == null)
{
return NotFound();
}
//Name and Desc are localized properties, they are stored in a collection of Translation with one to many relationship
dbCIApplication.Translations[userLang].Name = cIApplication.Name;
dbCIApplication.Translations[userLang].Description = cIApplication.Description;
dbCIApplication.UpdatedBy = cIApplication.UpdatedBy;
dbCIApplication.Status = cIApplication.Status;
dbCIApplication.Publisher = cIApplication.Publisher;
// And the list goes on...
//... and on...
_context.CIApplications.Update(dbCIApplication);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!CIApplicationExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
.
automapper로 시도했지만 새로운 인스턴스를 생성 할 때 동일한 키를 가진이 유형의 다른 인스턴스가 이미 추적되기 때문에 "추적 할 수 없습니다"오류가 발생합니다.
업데이트 할 개체와 무시할 명부를 전달할 수있는 재사용 가능한 코드를 사용하고 싶습니다. 그러나 나는 그것을 설치하기에 충분한 코더가 아니다. 누군가 멋진 아이디어가 있다면 그것은 최고 일 것이다.
감사합니다.
감사합니다. 이것은 현재이 응용 프로그램의 "v2"이며 현재 asing.net/ef 6에서 asp.net 코어 및 ef 코어 2로 전환하는 데 관여하는 데싱 및 관련 테마를 새로 고치려고합니다. 내 디자인을 다시 생각해야 할 때 내가 생각한 것을 말해 줄 수 있니? 내가 전혀 developper 아니에요 난 단지 구글 복사 붙여 넣기와 커피를 많이 사용하여 코드하려고 해요 :) –