Мне нужен шаблон добавления или обновления для CTP5.Предполагая модель:
public class User
{
public int UserId { get; set; }
public ICollection<Address> Addresses { get; set; }
}
public class Address
{
public int AddressID { get; set; }
public string Location { get; set; }
}
Если я добавлю нового пользователя, то заполняется таблица адресов Coresponding.Но если пользователь уже находится в БД, я получу исключение DbUpdateException.В этом случае я хочу, чтобы данные в базе данных были обновлены новыми данными.Как я могу это сделать?
данные в базе данных
Адрес таблицы
Адрес ID Location
1 JohnPlace
2 MaryPlace
3 JimmyPlace
Обновление пользователя, которого я обновляю, содержит в коллекции адресов 1 элемент с AddressId: 2, Location = GeorgePlace.Но для ID = 2 в БД уже есть запись с location = MarryPlace.Я хочу, чтобы GeorgePlace перезаписал MarryPlace.
У меня не может быть адреса, который не назначен пользователю
Я создаю пользователя как:
var user=new User();
user.Id=GetUserIDfromService();
foreach(var address in GetAddressesFromService(user.Id)){
user.Addresses.Add(address);
}
context.Users.Add(user);
context.SaveChanges();//this may throw an exception, because there is already a user with this id.