Entity Framework Code First - добавление дочернего объекта в родительский с помощью первичного ключа - PullRequest
1 голос
/ 10 марта 2011

В Entity Framework Code First CTP5 возможно ли добавить дочернюю сущность в коллекцию родительской сущности, используя только первичный ключ дочернего элемента? Моя цель - избежать необходимости сначала загружать дочернюю сущность из хранилища данных.

Для бонусных баллов это можно сделать, используя только родительский и дочерний первичные ключи (т. Е. Вообще не загружая сущности)?

1 Ответ

0 голосов
/ 11 марта 2011

Скомпилировано в моей голове против CTP4, так что имейте в виду.

public void AddPersonToList(int id, int toAdd)
{
  var mailList = new MailList { ID = id, ContactInformations = new List<ContactInformation>() };
  this.db.MailLists.Attach(mailList);

  var ci = new ContactInformation { ID = toAdd };
  this.db.ContactInformations.Attach(ci);
  this.db.ObjectStateManager.ChangeRelationshipState(mailList, ci, ml => ml.ContactInformations, System.Data.EntityState.Added);

}

Вам необходимо вызвать SaveChanges, прежде чем что-либо сохранится.

Присоединение и сущность только с идентификатором и работа сStatemanager действительно хорошо работает в EF и позволяет создавать действительно хорошие решения с точки зрения производительности.

...