EF 4.1:无法添加集合 - 未将对象引用设置为对象的实例

时间:2011-11-28 18:04:44

标签: ef-code-first

JL自己告诉我,我需要禁用延迟加载并从我的代码中删除虚拟内容,所以:

予。域名:

    public class Parent
    {
        public int Id { get; set; }
        public ICollection<Child> Children { get; set; }
    }

    public class Child
    {
        public int Id { get; set; }
        public int FK_ParentId { get; set; }            

        [ForeignKey("FK_ParentId")]
        public Parent Parent { get; set; }
    }

II。 DAL:

   public DataContext()
   {
      this.Configuration.LazyLoadingEnabled = false;
   }

III。 program.cs

        var clientSvc = new ClientSvcRef.ServiceClient();            
        var parent = new Parent();
        var child = new Child {Parent = parent};
        parent.Children.Add(child);
        clientSvc.AddParent(parent);

问题:program.cs中的第4行:“对象引用未设置为对象的实例。”

1 个答案:

答案 0 :(得分:4)

至少有两种方法可以解决这个问题:

(1)在构造函数中自己初始化集合,

public Parent() {
    Children = new List<Child>();
}

或(2)使用Create()代替new

var p = _db.Parents.Create();
var c = _db.Children.Create();
c.Parent = p;