записи, которые удаляются при создании и добавлении новой записи через Linq To SQL & MVC3 - PullRequest
0 голосов
/ 10 июля 2011

Я пытаюсь добавить новый комментарий в таблицу комментариев, но все записи в таблице удаляются, за исключением той, которую я добавил.Как пример: допустим, у меня есть существующий комментарий в базе данных для клиента 1. Я хочу добавить новый комментарий.

В моем контроллере у меня есть следующее:

  List<CustomerComment> comments = _commentsRepository.CustomerComments.ToList();


            CustomerComment newComment = new CustomerComment()
            {
                CustId = 1,
                RevisionNumber = revNumber,
                Comment = comment,
                Customer = _commentRespository.GetCustById(1),
                CommentDate = DateTime.Now,
                UserId = 24,
                Users = _commentsRepository.GetUserById(24)
            };


            comments.Add(newComment);

            _commentsRepository.SaveComment();

ВВ моем репозитории у меня есть следующее:

public Int32 SaveComment(CustomerComment comment)
{
    try
    {

        _DB.SubmitChanges();
    }
    catch
    {
        throw;
    }

    return comment.CommentId;

}

Во время пошагового перехода я не вижу изменений в данных до тех пор, пока я не создам новый комментарий и не войду в метод SaveComment.Что странно, так это то, что он показывает комментарии уже в таблице для удаления и новый комментарий для вставки.

Не понимаю, почему он считает, что существующие комментарии должны быть удалены.

Я также попробовал InsertOnSubmit, но он делает то же самое, поэтому я вынул его.

Одна вещь, которую я заметил, состоит в том, что существующий комментарий после загрузки в контроллер (комментарии) имеет объект customerкак ноль.Когда я создаю новый комментарий, я назначаю клиента новому комментарию (Customer = _commentRespository.GetCustById (1).) Это вызывает удаление, и почему объект не создается и не назначается при загрузке.

Некоторая дополнительная информация о том, что я использую POCO и файл сопоставления XML.

1 Ответ

0 голосов
/ 10 июля 2011

Возможно, вам не следует добавлять комментарий в хранилище в памяти, попробуйте добавить новый комментарий в контекст данных.Я предполагаю, что в вашем репозитории у вас есть метод add ... Так что-то вроде _commentsRepository.add (newComment);shoukd work ...

Независимо от этого, почему вы храните весь клиент в базе данных и в этом отношении пользователя?вы должны хранить только их идентификаторы нет?когда вам нужно прочитать неактивные данные, которые будут выброшены в представление, вам могут потребоваться дополнительные данные, такие как данные о клиенте и пользователе, используйте для этого объект dto.Упорство в одном, просмотр данных с определенными данными, возможно, заполненными из разных таблиц, это другое дело ...

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