Странная ошибка при использовании поставщика ErikEJ для членства в SQL CE - PullRequest
0 голосов
/ 25 ноября 2011

Я пытался реализовать замечательный SqlCe 4.0 членский провайдер от ErikEJ, но у меня возникли проблемы. Я понял, как работает документация, которую предоставляет мистер Э.Дж. Но ....

Я хочу абстрагировать источник во внешний DAL. Но у меня есть проблемы с получением там. Первая проблема, которую я получаю, - это попытка добавить ссылку на SqlCe через файл .csproj, а не через web.config. (Мне нужно сделать это, чтобы я мог добавить ту же ссылку в свой проект DAL) (Мне также нужно иметь возможность установить для локального копирования значение true, поэтому нужно указывать его в ссылках csproj). Так что я делаю это ...

<assemblies>
   <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   <!--<add assembly="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>-->
</assemblies>

А потом добавить его в мой проект ...

SqlReference

Но когда я захожу на сайт, я получаю это сообщение об ошибке:

Невозможно загрузить собственные компоненты SQL Server Compact соответствующий провайдеру ADO.NET версии 8482. Установите правильная версия SQL Server Compact. Обратитесь к статье 974247 КБ для подробнее ...

Когда я ссылаюсь на статью KB , в ней говорится:

ИСПРАВЛЕНИЕ: вы получаете сообщение об ошибке при запуске SQL Server Compact Приложение на основе 3.5 после установки 32-разрядной версии SQL Server Compact Edition 3.5 с пакетом обновления 2 на компьютере x64

И да, это то, что бросает меня. Почему речь идет о 3,5? Я добавил ссылку на 4.0 dll, с которой разработчик Эрика рассчитан на работу.

Я действительно надеюсь, что кто-то может помочь. Возможно, Эрик прочтет этот пост: -)

p.s. Мне также интересно, в чем разница между добавлением ссылки в web.config и добавлением ее через csproj. Я думал, что это потому, что web.config выглядит в GAC. Но когда я пытаюсь добавить ссылку в visual studio (в csproj), я не вижу возможности добавить System.Data.SqlServerCe вообще!

Я также могу сказать, что когда я копирую dll напрямую из

C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private

В мою корзину DAL и корзину для веб-сайтов и ссылку на них непосредственно в CSproj я все еще получаю ту же проблему.

1 Ответ

1 голос
/ 25 ноября 2011

Вы используете версию с частной сборкой (4.0.0.1) - похоже, что на вашем развернутом сайте отсутствуют необходимые неуправляемые файлы DLL.Не могли бы вы заглянуть в проводник и показать, что вы видите.Также смотрите этот SO-ответ: Не удается получить SQL Server Compact 3.5 / 4 для работы с ASP .NET MVC 2

...