Пользовательский класс служб RIA

Используя Silverlight 3 и RIA Services, в моем веб-проекте определен следующий класс:

public class RegionCurrentStates
{
    public RegionCurrentStates()
    {
        Name = String.Empty;
        States= new List<State>();
    }
    [Key]
    public string Name { get; set; }
    public List<State> States{ get; set; }
}

Однако на клиенте класс отображается только со свойством Name. Состояния нигде не появляются. Я предполагаю, что мне не хватает каких-то метаданных, но я не знаю, что это такое.

Изменить: я должен уточнить, что State - это класс, созданный LinqToSql.


person Nate    schedule 18.09.2009    source источник


Ответы (1)


См.: Обзор служб RIA - 4.8.1 Возвращение связанных лиц.

В служебной функции, в которой вы возвращаете список RegionCurrentStates, добавьте DataLoadOptions, а в описании метаданных добавьте атрибут Include для правильности состояний.

Добавьте DataLoadOption в функцию запроса, определенную в классе домена.

public IQueryable<RegionCurrentStates> GetRegionCurrentStates()
{
    DataLoadOptions loadOpts = new DataLoadOptions();
    loadOpts.LoadWith<RegionCurrentStates>(r => r.States);
    this.Context.LoadOptions = loadOpts;

    return this.Context.RegionCurrentStates;
}

В метаданных:

//This class in generated by RIA wizard when you create 
//your DomainService (based on LinqToSqlDomainService) and you check
//[x]Generate metadata class in wizard window
//file: MyService.metadata.cs

[MetadataTypeAttribute(typeof(RegionCurrentStates.RegionCurrentStatesMetadata))]
public partial class RegionCurrentStates
{
    internal sealed class RegionCurrentStatesMetadata
    {      
      [Include]  //Add (only) this line 
      public List<State> States{ get; set; }
    }
}        

Удачи.

person rlodina    schedule 17.11.2009
comment
Я настоятельно рекомендую ознакомиться с документацией «Обзор службы RIA». Это НЕОБХОДИМО ПРОЧИТАТЬ, когда вы работаете над RIA. - person rlodina; 17.11.2009
comment
Да, согласен. В итоге я тоже нашел ответ там. - person Nate; 17.11.2009
comment
Этот документ все еще существует? Линк никуда меня не привел. - person Blake Blackwell; 05.04.2010
comment
Блейк - Теперь документация WCF RIAService находится на MSDN: msdn .microsoft.com / en-us / library / ee781368 (v = MSDN.10) .aspx Для чтения в автономном режиме: go.microsoft.com/fwlink/?LinkId=185200 - person rlodina; 20.04.2010