Совместное использование объектов Entity Framework между проектами? - PullRequest
0 голосов
/ 10 сентября 2010

У меня проблемы с рефакторингом, может кто-то знает почему ...

В одном решении у меня есть служба WCF. В другом решении у меня есть приложение RIA. Поскольку база данных SQL между ними идентична, я хотел создать отдельный проект, в котором будут размещаться файл edmx, а также служба домена. Если я создаю файл edmx непосредственно в проекте WCF и делаю то же самое на стороне RIA, все работает нормально.

Но когда я пытаюсь вытянуть этот файл edmx в отдельный проект и добавить ссылки на него, я получаю всевозможные странные ошибки, которые не могут быть найдены моими объектами сущностей. Сам сервис WCF выглядит нормально, так как он ссылается на проект edmx и компилируется просто отлично.

Но клиентский проект WCF, имеющий ссылку на службу WCF, извлекает ссылки на сущности. Даже добавление сборки edmx действительно не помогает - одни сущности найдены, другие нет. Очень странно.

Кто-нибудь знает, чего мне не хватает?

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

Скопируйте строку подключения во все ваши проекты, которые пытаются использовать модель. Однако в строке подключения удалите указатели ресурса OR'd.

например. Полное соединение с объектом

<connectionStrings>

    <add name="AwesomeEntityModel" 
         connectionString="metadata=res://*/AwesomeEntityModel.csdl|res://*/AwesomeEntityModel.ssdl|res://*/AwesomeEntityModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\sqlexpress;initial catalog=NEILHIGHLEY.COM;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>

Обрезать до следующего;

<connectionStrings>
    <add name="AwesomeEntityModel" 
         connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\sqlexpress;initial catalog=NEILHIGHLEY.COM;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>
0 голосов
/ 10 сентября 2010

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

Если я читаючто вы сказали правильно:

  • ваш сервер WCF ссылается на проект "edmx".
  • ваш клиент WCF ссылается на сервер WCF И проект "edmx".

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

Также проверьте, оставлены ли отсутствующие элементы при доступе по умолчанию для внутреннего (если не определено).

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