LINQ-to-SQL не отправляет изменения в локальную базу данных - PullRequest
1 голос
/ 20 сентября 2011

У меня есть локальная база данных SQL Server Compact в приложении, которое я создаю. Я сгенерировал файл .dbml, который могу использовать для целей LINQ-to-SQL, с помощью инструмента SqlMetal.exe, который работал нормально - теперь у меня есть объекты таблиц для использования в моем приложении.

У меня странная проблема. Даже после вызова SubmitChanges () в моем DataContext данные никогда не фиксируются. Но как ни странно, после добавления строк эти строки появляются в объекте таблицы в текстовом тексте, но не в таблице. Что меня шокировало, так это то, что даже после остановки и запуска моего приложения эти строки все еще существовали в DataContext, но через несколько минут они исчезли.

Правильно ли я настроил это? Есть ли еще какие-то шаги, которые мне нужно сделать после использования SqlMetal, чтобы разрешить LINQ фиксировать изменения?

1 Ответ

3 голосов
/ 20 сентября 2011

Я предполагаю, что вы связались с файлом dbml, используя свойства по умолчанию.Это означает, что каждый раз, когда вы запускаете сеанс отладки, файл будет копироваться в ваш выходной каталог, а внесенные в него изменения будут видны только для этого сеанса (т. Е. «Копировать -> Всегда»).

Если вы хотите, чтобы изменения сохранялись, щелкните правой кнопкой мыши файл -> свойства -> Никогда не копировать.По умолчанию в среде IDE предполагается, что вы не хотите изменять исходную базу данных, а только копию для целей отладки.

...