Редактирование записей основных данных с использованием Linq-2-Sql - PullRequest
0 голосов
/ 25 июля 2011

Я использую Linq-2-Sql в качестве ORM в приложении asp.net mvc-3. Сначала взгляните на форму ... enter image description here Это основная форма для редактирования информации о партии. Основная часть (таблица партий) включает в себя поля BatchNo, SKUTitle, StageID и Date. Детальная часть (BatchDetail) содержит поля PackingInstruction, ExpectedYield, Units и TargetDate. мне удалось сохранить эту информацию на одной странице в сценарии создания, как

public ActionResult CreateBatch(Batch batch, BatchDetail detail)
{
    batch.BatchDetails.AddRange(detail.ToList());
    ctx.Batches.InsertOnSubmit(batch);
    ctx.SubmitChanges();
}

но редактировать сценарий довольно сложно. в этой форме, как показано на рисунке выше, пользователь может добавлять новые записи в подробном разделе, удалять и редактировать существующие записи, и к тому времени, когда данные публикуются в контроллере, у нас нет возможности узнать, какие записи были добавлены недавно, какие изменены и какие удален. поэтому я должен сделать что-то вроде

public ActionResult EditBatch(int id, BatchDetail detail)
{
     var batch = ctx.Batches.SingleOrDefault(x=>x.BatchID == id);
     ctx.BatchDetails.DeleteAllOnSubmit(ctx.BatchDetails.ToList());
     UpdateModel(batch);
     batch.BatchDetails.AddRange(detail);
     ctx.SubmitChanges();

}

Я ненавижу эту часть удаления подробных записей в этом сценарии. Есть ли способ в Linq-2-Sql, что я могу обойти, удалив все записи в аналогичных сценариях? Если не могу я сделать это в EF без ненужного удаления?
Редактировать: Я изучал метод Attach System.Data.Linq.Table, но, похоже, ничего не могу понять

1 Ответ

0 голосов
/ 08 августа 2011

В демоверсии MVC Music Store есть небольшая часть, которая описывает удаление товаров из корзины покупок с помощью JQuery AJAX для вызова действия удаления контроллера.Пример приведен в части 8 этого урока .

Фактическое объяснение вызова AJAX составляет около 3/4 пути вниз по странице.Заголовок раздела - «Обновления Ajax с помощью jQuery», если вы хотите быстро найти и найти его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...