Entity framework 当我尝试更新集合属性时,会收到UpdateException

Entity framework 当我尝试更新集合属性时,会收到UpdateException,entity-framework,asp.net-mvc-4,ef-code-first,Entity Framework,Asp.net Mvc 4,Ef Code First,我使用的是MVC4应用程序,我使用的是EF CodeFirst。 当我尝试运行以下代码时: public void Autorizare(int cerereId, Persoana persoana) { var cerere = _db.Cereri.Find(cerereId); cerere.Autorizare.Add(persoana); _db.SaveChanges

我使用的是MVC4应用程序,我使用的是EF CodeFirst。 当我尝试运行以下代码时:

 public void Autorizare(int cerereId, Persoana persoana)
        {

            var cerere = _db.Cereri.Find(cerereId);
            cerere.Autorizare.Add(persoana);            
            _db.SaveChanges();
        }
我得到一个类似这样的错误:

Entities in 'CerereDbContext.Persoane' participate in the 'Actiune_Executanti' relationship. 0 related 'Actiune_Executanti_Source' were found. 1 'Actiune_Executanti_Source' is expected.
我尝试了Entity(Activune).State=EntityState.Modified,但没有结果

我有一个主要的POCO:

  public class Cerere
    {
        public int Id { get; set; }
        ...            
        public virtual ICollection<Actiune> Actiuni { get; set; }
        ...

    }

在您的模型中,Cere没有名为Autorizare的属性;但是它确实有一个名为Actiuni的。它是Actiune类型,而不是Persoana类型,这是您试图添加到它中的。请发布类定义的其余部分。

在my Cere:public virtual ICollection Autorizare{get;set;}中,您是否尝试将Cere entitystate设置为modified?EF需要知道您已经修改了cerere对象,否则它将尝试插入persona对象,而不更新cerere对象。
public class Actiune
    {
        public int Id { get; set; }
        public DateTime Data { get; set; }
        public String  Nume { get; set; }
        public virtual ICollection<Persoana> Executanti { get; set; }
        public String Stadiu { get; set; }
        public String  Obs { get; set; }
    }
public class Persoana
    {

        public int Id { get; set; }
        public DateTime Data { get; set; }
        public String Nume { get; set; }
    }