LINQ - Вставка новой записи - ошибка при добавлении объекта, который не является новым - PullRequest
1 голос
/ 09 декабря 2011

Была предпринята попытка присоединить или добавить объект, который не является новым, возможно, был загружен из другого DataContext.

Я следил за многими сообщениями об этой ошибке, и, похоже, мой пример должен работать, но это не так.

public void Update(Bid bid)
{
    if (bid.BidID == 0) // new Bid
    {
        Bid newBid = new Bid();
        AutoMapper.Mapper.DynamicMap<Bid, Bid>(bid, newBid);
        _dataContext.Bids.InsertOnSubmit(newBid);
    }

    _dataContext.SubmitChanges();
}

Похоже, что объект newBid создан в том же контексте данных, к которому я пытаюсь передать SubmitChanges, и поэтому должен быть правильно отслежен. Одна вещь, которая пришла мне в голову, это то, что объект newBid имеет свойство BidID, установленное в 0. BidID - это столбец идентификаторов в базе данных. Может ли быть какая-то проблема там? В настоящее время в таблице нет записей с идентификатором BidID 0.

Спасибо.

1 Ответ

1 голос
/ 09 декабря 2011

попробуй - это. Я думаю, что _dataContext не возвращает тот же datacontext.

 public void Update(Bid bid)
    {
        var ctx = _dataContext;
        if (bid.BidID == 0) // new Bid
        {
            Bid newBid = new Bid();
            AutoMapper.Mapper.DynamicMap<Bid, Bid>(bid, newBid);
            ctx.Bids.InsertOnSubmit(newBid);
        }

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