实体框架代码首先是多对多的NullReference

use*_*876 2 asp.net-mvc entity-relationship entity-framework-4 ef-code-first entity-framework-4.1

我一直在su.Companies.Add(co)上得到一个NullReferenceException; 线.我认为,通过我的模型定义方式,它应该工作.自动完成,听起来像一个新手,完成这很好.我显然是EntityFramework的新手.

救命?

using (var db = new TicketdocketEntities())
{
  var su = new SiteUser { UserName = model.UserName };
  db.SiteUser.Add(su);
  var co = new Company { Name = "Hello" };
  su.Companies.Add(co);
  db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

楷模

public class Company
{
  [Key]
  public int CompanyId { get; set; }
  public string Name { get; set; }

  public virtual ICollection<SiteUser> SiteUsers { get; set; }
}

public class SiteUser
{
  [Key]
  public int SiteUserID { get; set; }
  public string UserName { get; set; }

  public virtual ICollection<Company> Companies { get; set; }
}

public class TicketdocketEntities : DbContext
{
    public DbSet<Company> Companies { get; set; }
    public DbSet<SiteUser> SiteUser { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ton 6

您仍然需要使用实际列表初始化该属性:

public class SiteUser 
{ 
    public SiteUser()
    {
        Companies = new List<Company>();
    }

    [Key] 
    public int SiteUserID { get; set; } 
    public string UserName { get; set; } 

    public virtual ICollection<Company> Companies { get; set; } 
} 
Run Code Online (Sandbox Code Playgroud)