【问题标题】:c# Adding a new object to an object context returns "error occurred while updating the entries", duplicate entry for primary keyc#将新对象添加到对象上下文返回“更新条目时发生错误”,主键重复条目
【发布时间】:2009-07-28 12:49:27
【问题描述】:

我在尝试将对象添加到实体框架中的对象上下文时遇到问题。

代码如下:

//related object ids are retrieved from another context.
//since I thought the problem could be linked to object loaded in this context, I tried to
//close it and start on a fresh object context... 
int idetab = currentEtab.Id;
long idnivcycle = selectedNivcycle.id_nivcycle;
long idanscol = AnneeScolaireEnCours.id_annee_scolaire;
//and this context is closed
context.Dispose();


//This is the new object context
objectcontextEntities ctest = new objectcontextEntities();
//from where I retrieve all the objects I want to link to the object I want to create :            
Nivcycle niv = ctest.Nivcycles.Where("it.id_nivcycle=@id", new ObjectParameter("id", idnivcycle)).First();
Etablissement eta = ctest.Etablissements.Where("it.Id=@id", new ObjectParameter("id", Convert.ToInt32(idetab))).First();
annee_scolaire an = ctest.annee_scolaire.Where("it.en_cours = @id", new ObjectParameter("id", Convert.ToSByte(true))).First();
// Now I try to create my new object           
Composante co = new Composante();
co.Nom = "test";
co.Nivcycle = niv;
co.Etablissement = eta;
co.AnneeScolDeb = an;
ctest.AddToComposantes(co);
ctest.SaveChanges();
ctest.Dispose();

在 SaveChanges() 上,我收到一个 UpdateException,说键 'PRIMARY' 有一个重复的条目 '0'。 确实,我的“Composantes”中已经有一个 id=0 的对象。如果我删除它,我至少可以创建一个 ID=0 的对象。我不明白的是,当一个新对象被添加到上下文中时,为什么它不采用下一个可用的 ID ????这与我尝试在新上下文中创建此对象之前发生的错误完全相同......这可能是因为我的 model.edmx 中缺少参数?有没有办法强制将新 id 归属于新创建的对象?

我正在使用实体框架模型连接到 mysql 数据库,该模型使用 Devart dot.connector 连接到数据库。 提前感谢大家对这个简单问题的回复。

皮埃尔

【问题讨论】:

    标签: c# mysql entity-framework object savechanges


    【解决方案1】:

    我自己找到了解决方案。对于坚持这个愚蠢的事情的人来说,这可能很有用...... 这只是因为在数据库本身中,ID 字段未设置为 AUTOINCREMENT ... 改变这个并更新 model.edmx 解决了这个问题。 抱歉打扰你了!!!!!!

    【讨论】:

      猜你喜欢
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 2016-02-03
      • 2016-08-21
      • 2019-06-19
      • 2021-12-18
      • 2017-02-27
      相关资源
      最近更新 更多