2010-07-20 8 views
1

내가 왜 SaveChanges() 오류인지 모르겠다. Google에서 검색 할 때, EF를 사용하여 몸체의 테이블에 기본 키가있다는 메시지가 있지만 여전히 오류가 있습니다. 오류 메시지가 명확하지 않으면 System.Data.UpdateException이 throw됩니다. 강령은 :삽입시 .NET 4.0 Entity Framework 오류가 발생합니까?

public static void AddAccount(int _acc_id,string _name) 
{ 
    dataEntities de = new dataEntities(GetEntityConn()); 
    account acc = new account 
    { 
     account_id = _acc_id, 
     name = _name 
    }; 
    de.AddObject("account", acc); 
    de.SaveChanges(); 
} 
+2

예외 메시지는 무엇입니까? – adriaanp

+0

한 줄만 : EntitySet을 업데이트 할 수 없습니다. : – Cheung

+0

해결책을 답으로 추가하고이 질문을 "닫으십시오"라고 표기하고 다른 사람들을위한 참고 자료로 사용하십시오 : –

답변

0

내 초능력은 ACCOUNT_ID 필드가와 _acc_id의 값이 테이블에 이미있는 고유 제한 조건을 가지고 있음을 말해.

내 강력한 능력이 잘못 되었다면 더 많은 정보가 필요합니다. 8)

+0

테이블에 account_id와 name이라는 두 개의 열이 있습니다. account_id = acc_id, account_id 자동 증가, 읽기 때문에 (SQL CE, EF4와 함께 사용할 때 자동 생성 기본 키를 지원하지 않음 : http://social.msdn.microsoft.com/forums/en-US/sqlce)/스레드/48984bd4-0921-4637-bd8f-8aa1ae9514ab /) 지금은 그냥 이름을 삽입하지만 여전히 작동하지 않습니다. ( – Cheung

+0

아마도 저장 프로 시저를 사용하여 이름에서 지나가는 추가 작업을 수행하고 EF를 사용하여 저장 프로 시저를 호출합니다 ? 좋은 구현 일 수도 있습니다. – Task

0

EntitySetName은 계정이 아니라고 추측하지만 자세한 정보 없이는 알기 어렵습니다. 뭔가처럼 내가 할 것이 무엇

입니다 :이 문자열 값 없애는

public static void AddAccount(int _acc_id,string _name) 
{ 
    dataEntities de = new dataEntities(GetEntityConn()); 
    account acc = new account 
    { 
     account_id = _acc_id, 
     name = _name 
    }; 
    de.Accounts.Add(acc); 
    de.SaveChanges(); 
} 

그것은 또한 리팩토링 도움이 될 수 있도록,

+0

엔티티 집합 이름은 실제로 "계정"입니다. * (* .edmx)를 엽니 다. ( 그러나 "추가"방법은 없습니다. 여기 화면 샷 http :// /www.img xc.com/fullimage/qNzIWp.png – Cheung

+0

계정 설정이 아닙니까? – Jeroen

+0

'de.account' 유형은 무엇입니까? –

0

업데이트 :에 동일한 테이블을 만드는 시도 SQL Server 2008에서 edmx 파일을 생성하고 동일한 코드를 삽입에 사용하면 작동합니다! 그래서 내가 가 나는 SQLCE 데이터베이스와, 창 형태의 테스트 프로젝트를 업로드 .... SQLCE와 EF 4.0에 대한 모든 것을 믿고, 하나의 버튼 이벤트와 함께, 당신은

http://www.netfrd.com/testproject.zip

코드를 다운로드 할 수 있습니다 매우 간단하지만 실제로 작동하지 않습니다.

관련 문제