模型包括对象列表



我试着建立一个模型,包括几个属性和一个对象列表,像这样:

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

最新更新