RIA не генерирует все прокси-объекты - PullRequest
4 голосов
/ 05 октября 2011

Framework: Silverlight 4 + Entity Framework 4 (бизнес-приложение SL: проект SL и проект .WEB в решении)

У меня есть два класса в моем уровне данных (не сопоставлены с БД, созданные вручную - яони нужны для определенного вида)

[EnableClientAccess]
public class CityInfoFull
{
    [Key]
    public int Id { get; set; }

    public String Country{ get; set; }
    public String Region { get; set; }
    public String City { get; set; }
    public int Population { get; set; }
    public DateTime Founded { get; set; }
}

RIA создает соответствующий прокси-класс в Geography.Web.g.cs

В том же пространстве имен у меня есть другой класс:

[EnableClientAccess]
public class Person
{
    [Key]
    public int Id { get; set; }

    public String FullName { get; set; }
    public DateTime DateOfBirth { get; set; }
}

Однако RIA не хочет создавать прокси для этого класса.Мне нужен прокси в приложении Silverlight, и он не генерируется.

В чем может быть причина этого?Я не знаю, где искать.

Я пробовал:

  • Проверено, что для файла установлено значение Compile
  • Проверено, чтофайл находится в соответствующем пространстве имен
  • Перестроен веб-проект, содержащий файл
  • Перестроен проект SL
  • Удалил файл .g.cs и перестроил проекты.
  • Проверяется, генерируются ли какие-либо другие прокси-классы.(Я обнаружил, что любой новый класс, который я создаю, не будет иметь прокси, но если я изменю уже существующие классы, их прокси будут обновлены. Но новые прокси не создаются. Кажется, что только классы, созданные до некоторой точки,сгенерировано и все, что было создано с тех пор, не получает свой прокси, даже если я удалю .g.cs и позволю RIA восстановить .g.cs).

Ничего из этого не сработало.Что еще я могу сделать?

1 Ответ

5 голосов
/ 05 октября 2011

Вам необходимо определить метод запроса в доменной службе для каждой сущности, которую вы хотите использовать в проекте silverlight.В вашем случае вы должны определить операцию запроса для CityInfoFull и Person.

public class MyDomainSerivce : DomainService {

   public IQueryable<CityInfoFull> GetCities() {
     // your logic
   }

   public IQueryable<Person> GetPersons() {
     // your logic
   }
}

. Если вы хотите разрешить вставку, обновление и удаление объектов указанных типов в приложении Silverlight, которое вынеобходимо определить соответствующие операции вставки, обновления и удаления в вашем DomainService для сущностей.

Чтобы получить более подробную информацию, обратитесь к документации WCF RIA Services .

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