2013-12-17 2 views
0

вот проблема, с которой я сейчас сталкиваюсь. Я создал приложение, которое использует локальную базу данных (это было создано Add -> New Item -> Local Database. После этого я добавил таблицы в эту базу данных .sdf. Затем я подключился к этой базе данных с помощью Добавить -> Новый элемент -..> ADO.NET Entity Data ModelVisual Studio 2012 перемещает локальный файл .sdf на серверный компьютер

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

Поэтому, поскольку у меня нет предыдущего опыта работы с базами данных, я рассматривал этот .sdf-файл как любой другой файл (скажем, книгу Excel), и я подумал, что могу просто взять уже существующий d atabase, скопируйте его на серверный компьютер (например, \ Server001 \ Database \ Database1.sdf) и просто измените строку подключения в app.config.

Однако проблема в том, что это не работает. Поскольку я не знал, как изменить строку подключения, я создал новое приложение, где я попытался подключиться к этой базе данных, расположенной на серверном компьютере; однако я получил следующую ошибку: SQL Server Compact не поддерживает открытие файлов базы данных на сетевом ресурсе.

У меня уже есть полностью функционирующая программа, но я понятия не имею, как заставить ее работать с несколькими пользователями. Я привязался к google для решения, но все, что я мог найти, - это создать локальную базу данных, а не как сделать ее доступной, разместив ее на сервере.

Не могли бы вы, ребята, помочь мне? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать! P.S. Это приложение WPF, .NET 4.5, созданное с использованием Visual Studio 2012 Professional.

Спасибо!

ответ

1

Сообщение об ошибке в значительной степени подводит итог проблеме: SQL Server Compact не поддерживает открытие файлов базы данных на сетевом ресурсе.

SQL Server Compact (он же «локальная база данных») должен использоваться локальным приложением; даже если это веб-приложение, обслуживающее множество запросов, само приложение является локальным.

Если вы хотите иметь несколько удаленных подключений (т. Е. Централизованное БД, распределенное приложение), вы должны посмотреть на использование экземпляра SQL Server (любой SKU, вероятно, будет работать, даже SQL Server Express). Они будут использовать файлы MDF вместо SDF-файлов, поэтому вы можете обратиться к Convert .sdf database to .mdf database. Возможно, вам также понадобится настроить идентификатор пользователя для вашей строки подключения, поэтому ознакомьтесь с this link on CREATE USER и Difference between a User and a Login in SQL Server, чтобы понять, как это можно настроить.

+0

Так что нет способа скопировать базу данных на серверный компьютер и просто подключиться к ней? Означает ли это, что мне приходится вручную создавать базу данных на сервере сначала и только потом подключаться к ней через ADO.NET Entity Framework? –

Смежные вопросы