Одна из моих сущностей имеет свойство EntitySet <> с атрибутами [Composition], [Include] и [Association]. Я заполняю эту коллекцию в своей доменной службе, но когда я проверяю ее содержимое при получении на клиенте, коллекция пуста.
Я использую Silverlight 4 RTM, а также RIA Services 1.0 RTM.
Есть идеи, что я делаю не так?
Вот код моей сервисной стороны:
public class RegionDto
{
public RegionDto()
{
Cities = new EntitySet<CityDto>();
}
[Key]
public int Id { get; set; }
public string Name { get; set; }
[Include]
[Composition]
[Association("RegionDto_CityDto", "Id", "RegionId")]
public EntitySet<CityDto> Cities { get; set; }
}
public class CityDto
{
[Key]
public int Id { get; set; }
public int RegionId { get; set; }
public string Name { get; set; }
}
[EnableClientAccess()]
public class RegionDomainService : LinqToEntitiesDomainService<RegionEntities>
{
public IEnumerable<RegionDto> GetRegions()
{
var regions = (ObjectContext.Regions
.Select(x => new RegionDto
{
Id = x.ID,
Name = x.Name
})).ToList();
foreach (var region in regions)
{
var cities = (ObjectContext.Cities
.Where(x => x.RegionID == region.Id)
.Select(x => new CityDto
{
Id = x.ID,
Name = x.Name
})).ToList();
foreach (var city in cities)
{
region.Cities.Add(city);
}
}
// each region's Cities collection is populated at this point
// however when the client receives it, the Cities collections are all empty
return regions;
}
}