2011-01-19 2 views
0

SQL Server Compact에서 Entity Framework를 사용하려고합니다. 나는 등을 읽고 수행 할 수 있습니다Entity Framework에서 SQL Server Compact를 사용할 때 UpdateException이 발생했습니다.

var context = new TestEntities(); 

foreach (var p in context.Personnes) 
{ 
    Console.WriteLine(p.prenom + " " + p.nom); 
} 

하지만 난 삽입을 수행 할 수 없습니다

var context = new TestEntities(); 

context.Personnes.AddObject(new Personne() {nom = "Test", prenom = "Test" }); 

context.SaveChanges(); 

UpdateException가 발생 나는이 작업을 수행 할 때.

System.Data.EntityCommandCompilationException : 몇명 erreur s'est produite lors 드 라 준비 드 ​​내가 프로그램을 실행할 때 다음

id (int, primary key), nom (varchar) and prenom (varchar). 내가 가진 디스플레이 경우 : Personne 테이블은 3 열이 la définition de la 명령. 더하기 내용을 더하여, consultez l' exception interne. ---> System.NotSupportedException : 해당 없음 은 (는) 모든 사용자가 사용할 수있는 모든 권한을 갖고 있습니다. SQL Server Compact.

System.Data.SqlServerCe.SqlGen.DmlSqlGenerator.GenerateInsertSql (DbInsertCommandTree 트리, 목록 매개 변수, CommandType을 & CommandType을, 부울 isLocalProvider) ... System.Data.SqlServerCe.SqlCeProviderServices.CreateCommand (DbProviderManifest providerManifest, DbCommandTree commandTree) ... System.Data.SqlServerCe.SqlCeProviderServices.CreateDbCommandDefinition (DbProviderManifest providerManifest, DbCommandTree commandTree) ... System.Data.Common.DbProviderServices.CreateCommandDe FINITION (DbCommandTree commandTree) ... System.Data.Common.DbProviderServices.CreateCommand (DbCommandTree commandTree) ... System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand (DbModificationCommandTree commandTree) --- 핀 드 라 추적 드 라 더미 디부 예외 interne --- ... System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand (DbModificationCommandTree commandTree) ... System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand (UpdateTranslator 번역기, 사전 identifierValues, List`1 generatedValues) ...

당신을 :) 감사 System.Data.Mapping.Update.Internal.UpdateTranslator.Update (IEntityStateManager 에서 StateManager, IEntityAdapter 어댑터)

+3

오류가 무엇인지 추측하기위한 경연 대회입니까, 아니면 Google과 공유하고 답변을 얻으시겠습니까? –

+0

영어가 주요 언어입니다. 오류 텍스트를 영어로 번역하십시오. – Andrey

답변

1

SQLSERVER 소형 서버 측 키 생성을 지원하지 않습니다. 응용 프로그램 측면에서 키를 생성해야합니다. 따라서 id을 명시 적으로 설정하십시오. 다음은 예제입니다.

context.Personnes.AddObject(new Personne() {id = lastId++, nom = "Test", prenom = "Test" }); 

lastId을 유지해야합니다. 위에서 작성한 코드는 단일 스레드에서만 작동합니다.

+0

좋습니다. 감사합니다. – TrexXx

관련 문제