Я работаю с объектами VS2010, .NET 4.0, Entity Framework 4 и POCO.Я пытаюсь добавить и удалить дочерние объекты от родителя.У меня есть отношения многие ко многим между [Пользователь] и [Компании].Итак, у меня есть следующая сущность:
// Objects created by POCO template generator
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public ICollection<Company> Companies { get; set; }
}
public class Company
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<User> Users { get; set; }
}
На данный момент в коде пользователь существует, но имеет нулевые компании.То, что я пытаюсь сделать, это добавить новую дочернюю компанию для пользователя.Этот код сохраняет компанию, но он также создает дубликат родительского элемента.
public UserRepository
{
internal ObjectContextEntities _dbContext = new ObjectContextEntities();
public User Save(User pocoObject)
{
// Load the existing User which has no companies
var loadedEntity = _dbContext.Users.Where(m => m.Id == pocoObject.Id).FirstOrDefault();
// Add the new company from a POCO object
loadedEntity.Companies.Add(pocoObject.Companies.Last());
_dbContext.SaveChanges();
}
}
Как мне добавлять дочерние объекты?(Без создания дублирующихся отношений?) ... Также существует ли простой способ обновить эти дочерние элементы при выполнении «ApplyCurrentValues ()» для родительского пользователя?