2011-12-08 4 views
1

다른 DataContext에서로드 된 것이 아닌 새로운 것이 아닌 엔티티를 첨부하거나 추가하려고했습니다.LINQ - 새로운 레코드를 삽입하는 중 오류가 발생했습니다.

나는이 오류에 대해 많은 스레드를 따라 왔으며 내 예제가 작동해야하지만 그렇지 않은 것으로 보입니다. newBid 객체가 I가 SubmitChanges에 노력하고, 따라서 제대로 추적해야 동일한 데이터 컨텍스트에서 만든 것처럼

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 객체의 BidID 속성이 0으로 설정되어 있다는 것입니다. BidID는 데이터베이스의 ID 열입니다. 거기에 문제가있을 수 있습니까? 현재 BidID가 0 인 테이블에는 레코드가 없습니다.

감사합니다.

답변

1

시도해보십시오. _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

음 ... 뭐가 잘못 됐어. –

관련 문제