WPF-MVVM-EntityFrameworkEntityFramework обновить существующий Entity
У меня есть проблема, когда я пытаюсь обновить существующий объект в проекте MVMV WPF У меня есть пользователя объект, на котором есть коллекция из UserApplication
UserApplication идентификатор_сервера INT ApplicationID INT UserId INT BinDirectory VARCHAR (MAX)
Пользователь Войти VARCHAR (50) Id ИНТ
Когда я добавляю новое приложение для моего пользователя, мне нужно, чтобы добавить запись в моей таблице UserApplications.
В моем классе модели User есть метод AddApplication
public void AddApplication (int appId, int serverId, string bin)
{
this.userApplications.add (new UserApplication(){
ApplicationId = appId,
ServerId = serverId,
BinDirectory = bin,
userId = this.Id
});
}
На мой взгляд, модель есть следующий код
this.currentUser.AddApplication(_currentApp.Id, _currentServer.Id, "my_directory");
userDao.Update(this.currentUser);
В userDao
public int Update(User userToSave)
{
using (Context dpEnt = new Context())
{
try
{
dpEnt.Attach(userToSave);
return dpEnt.SaveChanges();
}
catch (Exception ex)
{
_log.Error(ex.Message);
return -1;
}
}
}
Здесь я имеют следующее исключение при вызове Attach: Obje ct с временным значением EntityKey не может быть привязан к контексту объекта.
Я также попробовать (userDao)
public int Update(UserApplication userApp)
{
using (Context dpEnt = new Context())
{
try
{
dpEnt.UserApplications.AddObject(userApp);
return dpEnt.SaveChanges();
}
catch (Exception ex)
{
_log.Error(ex.Message);
return -1;
}
}
}
Здесь, также не работает
Можете ли вы помочь мне, пожалуйста?
Ваше первое решение не может работать, потому что приложение не вставляет новую запись. Какую ошибку вы получаете со своим вторым решением? – KroaX