LINQ Confusion - База данных не сохраняется после закрытия приложения? - PullRequest
3 голосов
/ 26 апреля 2009

Я делаю приложение WinForms на C #. Когда я иду, чтобы создать свой объект базы данных, мне предоставляется два варианта:

  • Локальная база данных
  • База данных на основе услуг

Все, что я хочу, - это простая локальная база данных, которую можно использовать для моего проекта.

Однако, если я выберу «Локальная база данных (Compact Edition)», то после создания таблиц и перетаскивания их в создатель класса LINQ-To-SQL появится следующее сообщение:

Выбранный объект (ы) использует неподдерживаемый поставщик данных.

Итак, я не знаю, почему создание локальной базы данных будет считаться неподдерживаемым поставщиком при перетаскивании в таблицы в конструкторе реляционных объектов.

Итак, я пробую второй тип, «База данных на основе сервисов». Я выкладываю свои таблицы так, как хочу для своего основного приложения, и составляю свои таблицы. LINQ-To-SQL Designer отлично работает, когда я перетаскиваю эти таблицы и продолжаю писать свой код в своем приложении для вставки и обновления записей базы данных.

Однако с этой второй «базой данных на основе служб» мои вставки и обновления работают до тех пор, пока приложение работает. Однако, как только я закрываю его, он возвращается к тому, что было раньше. Если я вручную добавляю данные через обозреватель сервера, они сохраняются, но любые вставки, которые я не сохраняю.

Почему я не могу создать и использовать локальную базу данных с LINQ?

Если это не вариант, то почему «База данных на основе сервисов» (независимо от того, что это) не сохраняется после закрытия приложения?

Спасибо за ваше время!


Редактировать: Очевидно, что конструктор объектов LINQ-To-SQL не работает в локальных базах данных Compact Edition. Это все еще можно сделать, но вам, очевидно, придется использовать SqlMetal для генерации файла dmbl.

1 Ответ

5 голосов
/ 26 апреля 2009

При компиляции старая база данных стирается, а новая копируется в папку bin. Поэтому попробуйте ссылку (используя linq) на базу данных в папке bin. Попробуйте сменить connectionString.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...