У меня есть файл базы данных SQL Server CE, и у меня есть объект Entity Framework ADO.NET с именем History
. Я делаю следующее, чтобы получить последний ID:База данных SQL Server CE и ADO.Net Entity Framework - данные не сохраняются
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();
Спасибо.
Редактировать: Вот обновление: Я заметил, что когда я запускаю программу и отлаживаю ее, она показывает, что история была создана и вставлена, а также дает ошибку первичного ключа, уже существующего, это происходит каждый раз, когда я запускаю приложение (снова и снова). Однако, когда я перехожу к серверному проводнику и щелкаю правой кнопкой мыши по db и выбираю «Показывать данные таблицы», он не показывает никаких данных. Когда программа запускается снова, в отладке нет ошибки первичного ключа или истории.
Можете ли вы показать нам свою строку подключения? Возможно, вы воссоздаете базу данных каждый раз, когда запускается ваше приложение? –