2011-02-03 48 views
0

在我的实体类,我用枚举作为一个关键属性:枚举作为RIA服务主要

[DataContract] 
public class MultimediaType 
{ 
    [DataMember] 
    [Key] 
    public Identificator Id { get; set; } 
    [DataMember] 
    public string Name { get; set; } 
    [DataMember] 
    public string Description { get; set; } 

    [DataContract] 
    public enum Identificator 
    { 
     [EnumMember] 
     Image = 1, 
     [EnumMember] 
     Video = 2, 
     [EnumMember] 
     Sound = 3 
    } 
} 


[EnableClientAccess()] 
public class DomService : DomainService 
{ 
    List<MultimediaType> _multimediaTypes = new List<MultimediaType>() 
    { 
     new MultimediaType() 
     { 
      Id = MultimediaType.Identificator.Image, 
      Name = "Image", 
      Description = "This is type for all images." 
     }, 
     new MultimediaType() 
     { 
      Id = MultimediaType.Identificator.Video, 
      Name = "Video", 
      Description = "This is type for all videos." 
     }, 
     new MultimediaType() 
     { 
      Id = MultimediaType.Identificator.Sound, 
      Name = "Sound", 
      Description = "This is type for all sounds." 
     }, 
    }; 

    [Query] 
    public IQueryable<MultimediaType> GetMultimediaTypes() 
    { 
     return _multimediaTypes.AsQueryable(); 
    } 
} 

我的客户是消耗我的域名服务的Silverlight应用程序。

我不知道什么是错的,但我obtaint此错误:

属性“MultimediaType.Id”被标记为关键属性,但它不是序列化。您是否缺少DataMemberAttribute?

你知道我做错了什么吗?非常感谢!

回答