У меня есть простая форма, которая вставляет новую категорию с указанным parentID (ServiceID).
и мои родительские отношения ребенка это;
Сервис> КатегорияВставка данных на основе ParentID, странное поведение ASP.NET MVC?
мой URL для создания Категории на основе ServiceID это за
/администратор/Категории/Создать/3 => "3 является ServiceID"
и моим Метод действия это
[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 ....
Я использую LinqToSql для действий db. В любом случае здесь начинается странная часть. Когда я сохраняю данные, он вставляет данные в таблицу Service вместо того, чтобы вводить данные только в таблицу категорий, а данные, вставленные в таблицу категорий, имеют новый вставленный ServiceID.
Это проблема с ASP.NET MVC ModelBinder или я делаю ошибку, которую я не вижу?
Я использовал LinqToSql в нескольких проектах и никогда не имел такой проблемы
Да, ServiceID автогенерируется и помечен в классах LinqToSQL. И перед сохранением категории он отключен от datacontext. Я вытащил сервис из db для Categor.Service –
Я попытался добавить службу категории через службу, и она сработала. Но когда я пытаюсь сохранить категорию с родительским сущностью, она вставляет новую Сервис и категорию с новым добавленным идентификатором serviceID –
Я подозреваю, что он не знает, что это тот же сервис, что и извлеченный. Прежде чем пытаться сохранить категорию, ее необходимо привязать к контексту данных. – tvanfosson