我一直在su.Companies.Add(co)上得到NullReferenceException;線。 我會認爲,與我的模型定義的方式它應該工作。自動完成,聽起來像一個新手,完成這個很好。我顯然是EntityFramework的新手。實體框架代碼首先多對多NullReference
幫助?
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();
}
模型
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; }
}
謝謝。這很好。 – user842876
問題是,它應該沒有這種解決方法,因爲修飾符虛擬應該意味着,該集合將被延遲加載。當你創建這樣的結構時,每次選擇SiteUser時,EF都會實例化新的SiteUser,並用數據庫中的數據填充它,但公司列表將因爲名爲 –
的構造函數而爲空,並且從一些未指定的原因添加懶加載 –