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行:“对象引用未设置为对象的实例。”
答案 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;