Если Person
является частью модели, а Person
имеет коллекцию Address
, то также Address
(как связанный объект) является частью модели (если вы явно не исключили коллекцию адресов из модели).).Это означает, что вы можете просто добавить набор адресов в DbContext в качестве вспомогательного свойства:
public class MyContext : DbContext
{
public DbSet<Person> People { get; set; }
public DbSet<Address> Addresses { get; set; }
}
Для UpdateAdress
вы можете использовать:
public void UpdateAddress(Address addr)
{
using (var context = new MyContext())
{
var addressInDb = context.Addresses.Find(addr.Id);
context.Entry(addressInDb).CurrentValues.SetValues(addr);
context.SaveChanges();
}
}
Даже если вы этого не сделаетехотите или не можете добавить Addresses
DbSet к контексту, вы можете использовать метод Set<T>()
контекста (если T является модельной сущностью - а Address
должен быть один):
public void UpdateAddress(Address addr)
{
using (var context = new MyContext())
{
var addressInDb = context.Set<Address>().Find(addr.Id);
context.Entry(addressInDb).CurrentValues.SetValues(addr);
context.SaveChanges();
}
}