У меня есть файл базы данных SQL Server CE, и у меня есть объект ADO.NET Entity Framework с именем History
. Я выполняю следующее, чтобы получить последний идентификатор:
var historyid = (from id in db.Histories // Get the current highest history Id
select (Int32?)(id.Id)).Max();
HistoryID = Convert.ToInt32(historyid);
if (HistoryID == 0) // No current record exists
{
HistoryID = 1; // Set the starter history Id
}
(не лучший способ, но это просто для проверки).
Это работает хорошо и возвращает правильное значение (если я вручную ввожу идентификатор 1, он возвращает 1, то же самое с 2 и т. Д.)
Проблема связана со следующим кодом:
History history = new History();
history.Id = 1;
history.SoftwareInstalled = "test";
db.AddToHistories(history);
db.SaveChanges();
Вышеописанное работает и проходит нормально, но изменения не сохраняются в базе данных! Почему это?
Вот моя переменная в БД: dbDeSluggerEntities db = new dbDeSluggerEntities();
Спасибо.
Редактировать: Вот обновление: я заметил, что когда я запускаю программу и отлаживаю ее, она показывает, что история была создана и вставлена, а также выдает ошибку уже существующего первичного ключа, это происходит каждый раз, когда я запускаю приложение (снова и снова). Тем не менее, когда я захожу в обозреватель сервера и щелкаю правой кнопкой мыши по базе данных и выбираю «Показать данные таблицы», она не показывает никаких данных. При повторном запуске программы нет ошибок первичного ключа или истории в отладке!