Я новичок в Entity Framework. Я пытаюсь обновить запись и сохранить изменения в базе данных.Запись обновления Entity Framework не работает
public void SaveEdit(Gate gate)
{
try
{
using (dc = new GateEntities())
{
var query = (from tbsite in dc.tblSites
where tbsite.ID == gate.ID
select tbsite).FirstOrDefault();
query.CalledInAt = gate.CalledInAt;
query.CallerRequest = gate.CallerRequest;
query.ContactPersonOnSite = gate.ContactPersonOnSite;
query.Email = gate.Email;
query.EmailSitePerson = gate.EmailSitePerson;
dc.SaveChanges();
}
}
catch (Exception ex)
{
throw ex;
}
}
Он не принимает никаких исключений или сообщений об ошибках, но не сохраняет изменения в базе данных. почему он не обновляет запись?
Попробуйте установить точку останова, чтобы посмотреть, не переносит ли ваша переменная 'query' какие-либо значения? –
Избегайте 'throw ex'', поскольку [свойство для повторного броска] (http://msdn.microsoft.com/en-us/library/ms182363.aspx) исключение - 'throw;'. Если исключение повторно выбрано, указав исключение в инструкции throw, трассировка стека будет перезапущена в текущем методе и список вызовов методов между исходным методом, который вызвал исключение, и текущий метод потерян. Чтобы сохранить исходную информацию трассировки стека с исключением, используйте инструкцию throw без указания исключения. –
Я бы не назвал вашу переменную 'query', поскольку она, очевидно, не является запросом (бит внутри скобок - это запрос, но переменной присваивается результат' FirstOrDefault() '). Это сайт. Также почему вы используете 'FirstOrDefault()', если вы не проверяете значение по умолчанию (null)? Почему бы просто не использовать 'First()', так как в итоге вы получите исключение, либо с учетом текущего кода. –