【问题标题】:LINQ - Inserting new record - error about adding an entity that is not newLINQ - 插入新记录 - 关于添加非新实体的错误
【发布时间】:2011-12-08 22:52:23
【问题描述】:

已尝试附加或添加一个不是新的实体,可能是从另一个 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 对象是在我尝试提交更改的同一数据上下文中创建的,因此应该正确跟踪。我想到的一件事是 newBid 对象的 BidID 属性设置为 0。BidID 是数据库中的标识列。那里会不会有什么问题?目前表中没有 BidID 为 0 的记录。

谢谢。

【问题讨论】:

    标签: c# linq linq-to-sql insert


    【解决方案1】:

    试试 - 这个。我在想 _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();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      相关资源
      最近更新 更多