EF 4.1: невозможно добавить коллекцию - ссылка на объект не установлена ​​на экземпляр объекта - PullRequest
2 голосов
/ 28 ноября 2011

Сама JL сказала мне, что нужно отключить отложенную загрузку и удалить виртуальные объекты из моего кода, поэтому:

I. Домен:

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

Проблема: строка 4 в program.cs: «Ссылка на объект не установлена ​​для экземпляра объекта.»

1 Ответ

4 голосов
/ 28 ноября 2011

Существует как минимум два способа решения этой проблемы:

(1) инициализировать коллекцию самостоятельно в конструкторе,

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

или (2) используйте Create() вместо new:

var p = _db.Parents.Create();
var c = _db.Children.Create();
c.Parent = p;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...