首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用时的UpdateException

使用时的UpdateException
EN

Stack Overflow用户
提问于 2011-01-19 14:10:35
回答 1查看 1.1K关注 0票数 0

我试图在SQLServerCompact中使用实体框架。我可以进行阅读,例如:

代码语言:javascript
复制
var context = new TestEntities();

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

但我不能执行插入:

代码语言:javascript
复制
var context = new TestEntities();

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

context.SaveChanges();

当我尝试这样做时,会引发一个UpdateExceptionPersonne表只有3列:id (int, primary key), nom (varchar) and prenom (varchar).

这是我运行程序时的显示:

System.Data.EntityCommandCompilationException: System.Data.EntityCommandCompilationException: erreur s‘’est produite lors de la pr de la définition de la commande。加德·德拉克斯,特约实习生。

System.Data.SqlServerCe.SqlGen.DmlSqlGenerator.GenerateInsertSql(DbInsertCommandTree树,列表1& parameters, Boolean isLocalProvider) … System.Data.SqlServerCe.SqlGen.SqlGenerator.GenerateSql(DbCommandTree tree, List1和参数,命令类型& commandType,布尔isLocalProvider)…System.Data.SqlServerCe.SqlCeProviderServices.CreateCommand(DbProviderManifest providerManifest,DbCommandTree commandTree)…System.Data.SqlServerCe.SqlCeProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest,DbCommandTree commandTree)…System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)…System.Data.Common.DbProviderServices.CreateCommand(DbCommandTree commandTree)…System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree) -…System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree)…System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand(UpdateTranslator翻译器,字典2 identifierValues) … System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary2 identifierValues,清单1 generatedValues)…System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager,IEntityAdapter适配器)

谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-19 14:18:28

SqlServer契约不支持服务器端密钥生成。您必须在应用程序端生成密钥。因此显式地设置id。举个例子。

代码语言:javascript
复制
context.Personnes.AddObject(new Personne() {id = lastId++, nom = "Test", prenom = "Test" });

您必须维护lastId。我上面写的代码将只在单个线程中工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4736177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档