2015-01-27 1 views
0

У меня есть веб-проект Silverlight, где я применяю шаблон MVVM. Во всем моем решении у меня есть 4 проекта.Пространство имен Entity не отображается в проекте Silverlight

Проект «A3», содержащий все мои виды и ViewModels.

Проект «A3.Web», который содержит мои основные HTML-файлы, изображения, звуковые файлы и т.д.

Проект «A3Lib», который содержит мои XAML обязательные конвертеры и другие полезные классы, которые я создал.

Проект «A3Lib.Web», который содержит модели данных и логику домена.

Все мои модели сущностей находятся в моей папке DataModels, и весь код моего сервера службы домена находится внутри папки DomainLogic. Я создал новую папку внутри папки DataModels с именем «Common».

Поэтому, когда я хочу добавить модель данных в свою виртуальную машину, я попытался «использовать A3Lib.Web.DataModels.Common;» и это не нашло пространства имен.

Проблема: когда я добавляю новую папку и новую модель сущности в папку DataModels, я не вижу пространство имен в моем представлении или ViewModel в проекте «A3».

Однако у меня уже есть существующий код (добавлен кем-то другим), и модели, которые он добавил, показывают отлично (при использовании ...... в представлении или виртуальной машине).

Я проверил web.config, чтобы убедиться, что строка подключения существует, и это правильно. Я также попытался добавить совершенно новый контекст в базовый класс проекта (где другие контексты), и это не помогло. Мой проект просто не может разрешить или увидеть пространство имен модели данных, которое я создаю.

Благодаря

Юра

ответ

0

Silverlight, приложение видит модель и пространство имен из серверного проекта через сгенерированный код - вы должны увидеть его в папке Generated_Code вашего A3Lib проекта. Если его нет, то классы proxy не генерируются при сборке. Пару вещей, чтобы проверить:

  1. класс не является частным (эй - иногда это простые вещи)
  2. при использовании доменных служб, служба должна иметь по крайней мере 1 метод, который возвращает IQueryable или IEnumerable (даже если метод возвращает null), чтобы увидеть класс в домене домена Silverlight
  3. , если класс является только классом утилиты, который вы хотите предоставить совместно с клиентом, сохраните файл как classname.shared.cs и прокси-сервер заберет его.
  4. убедитесь, что ссылки на проект относятся к проектам, а не (возможно, более старые) .dll в другом месте.

Это все, что у меня есть на основе предоставленной информации.

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