2017-02-03 17 views
0

Я новичок в разработке .NET и SQL Server CE, я работаю над некоторыми проблемами с базой данных в нашем продукте.SQL Server CE с приложениями с чередованием .NET

Пути он предназначен есть 2 приложения (.csproj), к которым SQL Server CE динамически связан (.DLL), мы имеем оболочку, которая использует DLL для создания, обновления, удаления базы данных, и они получают доступ к одному базы данных SQL Server CE (.sdf)

После чтения в Интернете немного на SQL Server CE с .NET приложений, которые я узнал:

  1. Несколько приложений могут получить доступ к той же .sdf файл, без дополнительной необходимости, чтобы иметь собственный блокирующий механизм для доступа к базе данных

  2. База данных небольшая, и приложение .NET загружает базу данных в память, а операции выполняются в самой памяти.

Теперь мои вопросы:

  1. Как есть 2 .NET приложения, которые доступ к этой базе данных .sdf, есть 2 копии же .sdf файла в памяти и приложения изменяют свои собственные версия?

  2. Что я делаю неправильно, команда видит проблему (исключение уже удалено), доступ к базе данных медленный.

Спасибо

+0

Как csproj не приложение, файл .exe ... у вас есть .exe файлы? – ErikEJ

+0

Итак, мы закончили с 2.msi, которые запускаются в качестве фоновых сервисов. Они обращаются к файлу .sdf, dll sqlserverce присоединяется к структуре проекта обоих .msi's –

ответ

0

1: Если приложения одни и те же файлы, они изменяют один и тот же файл, а не свою собственную версию. Обратите внимание, что SQL CE имеет (максимальный 10-секундный по умолчанию) сброс задержек на диск.

2: Не бросайте исключение, если удаление уже произошло! (На вас может повлиять 10-секундная задержка буфера - это может быть уменьшено, но может слегка повлиять на производительность)

Медленный доступ к базе данных: может быть совершенно не связанным - у вас есть необходимые индексы и т. Д. - т. Е. Показать нам какой-то код, пожалуйста

+0

Спасибо, я не могу поделиться своим проприетарным кодом. Я вижу исключение DBConcurrency: Нарушение параллелизма: DeleteCommand затронул 0 ожидаемых 1 записи. –

+0

Нет кода = нет помощи с кодом, извините – ErikEJ