我试着建立一个模型,包括几个属性和一个对象列表,像这样:
public class A
{
public int ID { get; set; }
public string AnyProperty { get; set; }
}
public class B
{
public int ID { get; set; }
public string Title { get; set; }
public List<A> AList {get; set;}
}
问题是,在用于创建类型A对象的控制器中,我想创建一个新的列表"As"并将其添加到类型B的(现有或新)对象中。因此我写:
db.Bs.Find(id).AList = new List<A> {a};
但是在B的细节视图中调用这个List之后,它总是说NullReferenceException,因为List仍然是空的。数据库似乎不保护list,我该怎么做才能保护list?
一对多关系必须声明为virtual ICollection<>
public class B
{
public int ID { get; set; }
public string Title { get; set; }
public virtual ICollection<A> AList {get; set;}
}
不需要实例化成员AList
。只要把它添加到你的A
对象。
db.Bs.Find(id).AList.Add(a);