Ria Domainservice не генерирует код клиента с использованием DataconTracts

StackOverflow https://stackoverflow.com/questions/3760312

Вопрос

Я работаю над приложением Silverlight 4.0 и использую RIA Services. Я создал класс на стороне сервера, которая применяется к нему атрибуты DataContract и DataMember.

Доменовоеврос предоставляет этот класс в качестве результата запроса и как таковой, генерирует код для него на клиенте. Но каким-то образом он не генерирует код для всех свойств класса. Примитивные свойства типа GUID, String, INT, BOOL ETC создаются просто штрафом, но если у меня есть свойство моего собственного сложного типа, что свойство не создается на клиенте.

Вот рассматриваемый класс:

    [DataContract]
    [KnownType(typeof(SummaryGroup))]
    public class SummaryDataSet
    {
        public SummaryDataSet()
        {

        }

        [KeyAttribute]
        [DataMember]
        public Guid Guid { get; set; }

        [DataMember]
        public SummaryGroup SummaryGroup { get; set; }

    }

Имущество GUID создается на клиенте просто отлично. Свойство SummaryGrup не создается на клиенте. Вот код для суммы группы:

[DataContract]
public class SummaryGroup
{
    public SummaryGroup()
    {
    }

    [KeyAttribute]
    [DataMember]
    public Guid Guid { get; set; }

    [DataMember]
    public string Name { get; set; }

    [DataMember]
    public int Sequence { get; set; }
}

Оба класса находятся в том же пространстве имен.

Вопрос: почему не является свойством суммы группы SummaryDataset, созданного на клиенте и что я должен сделать, чтобы это исправить?

Это было полезно?

Решение

WCF RIA не может обрабатывать сложные типы, но вы можете попробовать это:

    [DataContract]
    [KnownType(typeof(SummaryDataSet))]
    public class SummaryDataSet
    {
        public SummaryDataSet()
        { }

        [KeyAttribute]
        [DataMember]
        public Guid Guid { get; set; }

        [DataMember]
        [Association("SummarySet_SummaryGrp_FK", "Guid", "Guid")]
        public SummaryGroup SummaryGroup { get; set; }

    }

Это дает РИА информацию для подключения от суммированногоDataSet к суммой группе.

Это предполагает, что вы можете запросить как суммированиеDataset, так и суммарную группу из сервесовой службы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top