나는 주어진 parentID (ServiceID)를 가진 새로운 Category를 삽입하는 간단한 폼을 가지고있다.
부모님 자녀 관계는 다음과 같습니다.
서비스> 카테고리ParentID, 이상한 동작을 기반으로 데이터 삽입 ASP.NET MVC?
서비스 id를 기반으로 카테고리를 생성하기위한 내 URL이
/관리/카테고리/만들기입니다/3 => "3은 서비스 id에게 있습니다"
내 작업 방법은이
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(int? id, Category category)
{
if (ModelState.IsValid)
{
try
{
category.Service = dbService.GetAll().WithServiceId(id.Value).SingleOrDefault();
dbCategory.Add(category);
dbCategory.Save();
return RedirectToRoute("List_Categories", new { ServiceId = id.Value });
}
catch
{
ModelState.AddRuleViolation(category.GetRuleViolations());
}
}
return
View ....
DB 작업에는 LinqToSql이 사용됩니다. 어쨌든 이상한 부분이 여기에서 시작됩니다. 데이터를 저장할 때 범주 테이블에 데이터를 저장하는 대신 서비스 테이블에 데이터를 삽입하고 범주 테이블에 삽입 된 데이터에 새로 삽입 된 ServiceID가 삽입됩니다.
ASP.NET MVC ModelBinder에 문제가 있습니까? 아니면 내가 보지 못하는 실수를하고 있습니까?
여러 프로젝트에서 LinqToSql을 사용했으며 이와 같은 문제가 발생하지 않았습니다.
예, ServiceID는 자동 생성되며 LinqToSQL 클래스에 표시됩니다. 카테고리를 저장하기 전에 데이터 인터페이스와의 연결이 끊어집니다. Categor.Service –
서비스를 통해 범주를 추가하는 시도하고 그것을 일한 db 서비스를 가져옵니다. 그러나 상위 엔티티로 카테고리를 저장하려고하면 새로운 서비스와 범주가 새로 추가 된 serviceID로 삽입됩니다. –
검색된 것과 동일한 서비스라는 것을 알지 못하는 것 같습니다. 범주를 저장하기 전에 데이터 컨텍스트에 다시 연결해야합니다. – tvanfosson