2011-12-08 8 views
1

新しいものではないエンティティをアタッチまたは追加しようとしました。別のDataContextからロードされている可能性があります。LINQ - 新規でないエンティティの追加に関する新しいレコードの挿入

私はこのエラーで多くのスレッドに従ってきました。私の例はうまくいくはずですが、そうではないようです。

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にしようとしているため、適切に追跡する必要がある同じデータコンテキスト内に作成されたようにそれは確からしいです。私に起こったことの1つは、newBidオブジェクトのBidIDプロパティが0に設定されているということでした。BidIDは、データベースのID列です。そこに何か問題がありますか?現在、BidIDが0のテーブルにレコードはありません。

ありがとうございました。

答えて

1

try - this。 _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(); 
    } 
+0

いいえ、申し訳ありません - 同じエラーです。 – BKahuna

+0

うーん...何がエラーです。 –

関連する問題