当我尝试更新集合属性时,我得到UpdateException

时间:2013-12-22 20:32:08

标签: 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();
        }

我收到这样的错误:

Entities in 'CerereDbContext.Persoane' participate in the 'Actiune_Executanti' relationship. 0 related 'Actiune_Executanti_Source' were found. 1 'Actiune_Executanti_Source' is expected.

我试过Entity(Actiune).State = EntityState.Modified,但没有结果。

我有一个主要的POCO:

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

    }

Actiune类看起来像这样

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; }
    }

和Persoana:

public class Persoana
    {

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

1 个答案:

答案 0 :(得分:0)

从您的模型中,Cerere没有名为Autorizare的财产;但它确实有一个名为Actiuni。哪种类型为Actiune not Persoana,这是您要添加的内容。请发布其他的课程定义。