2011-07-26 2 views
0

탐색 엔티티를 포함하는 레코드를 삽입하는 방법, 프레임 워크 3.5, C#을 내 제품 테이블엔티티 프레임 워크 1 - 나는 SQL 서버를 사용하고

CREATED_BY이 (가) 작성한이 외래 키 형태이며, ID, 이름, CREATED_BY이 (가) 작성한처럼 GROUP_ID 사용자

GROUP_ID 외부 키 형태로 그룹

  PRODUCT product  = new PRODUCT(); 

      product.name   = txtName.Text.Trim(); 
      product.USER   = new USER { user_id = Session["UserID"] }; 
      product.GROUP   = new GROUP { group_id = 1 }; 

      _db.AttachTo("USERs", product.USER); 
      _db.AttachTo("GROUPs", product.GROUP); 
      _db.AddToLEAD_TYPE(product); 
      _db.SaveChanges(); 

입니다하지만 SaveChanges를에 오류가

// 동일한 키를 가진 객체가 ObjectStateManager에 이미 있습니다. 기존 개체는 Unchanged 상태입니다. 객체는 추가 상태에있는 경우에만 ObjectStateManager에 다시 추가 할 수 있습니다.

해결 방법? 여기

답변

0

내가 내 probelm

여기
 PRODUCT product  = new PRODUCT(); 
     product.name   = txtName.Text.Trim(); 
     product.USERReference = CreateEntityReference<USER>("MyEntities.USERs", "user_id", Session["UserID"]); 
     product.GROUPReference = CreateEntityReference<GROUP>("MyEntities.GROUPs", "group_id", 1); 

     _db.AddToPRODUCTS(product); 
     _db.SaveChanges(); 

그리고 기능 희망

 private EntityReference<T> CreateEntityReference<T> 
      (string qualifiedEntitySetName, string keyName, object keyValue) where T : EntityObject 
     { 
      EntityReference<T> result = new EntityReference<T>(); 
      result.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName, keyName, keyValue); 
      return result; 
     } 

이 당신의 많은 시간을 절약 할 수 내 CreateEntityReference입니다 해결 방법이다.