我已阅读此链接: -
RIA Services: Entity Framework Reference Entities
并在元数据类和我的域服务查询中添加了[Include]
。
在我的客户端,我的Photos
实体中有一个名为Albums
的导航属性。但它是EntityCollection类型,我不知道如何迭代它。它没有get方法,甚至索引也不适用于它。我尝试过以下方法: -
albums.photos[0]
但它不起作用。谁能告诉我如何在我的相册实体中迭代那些照片集?
提前致谢:)
答案 0 :(得分:3)
因此,在您的相册类的元数据中,您可以使用以下内容:
[MetadataTypeAttribute( typeof(Album.AlbumMetadata ) )]
public partial class Album
{
internal sealed class AlbumMetadata
{
private AlbumMetadata ()
{ }
[Include]
public EntityCollection<Photo> Photos { get; set; }
}
在您的域名服务中,您将拥有以下内容:
public IEnumerable<Album> GetAlbums ()
{
var albums = from a in ObjectContext.Albums.Include( "Photos" )
orderby a.AlbumId descending
select a;
return albums;
}
在您的客户端代码中,您可以这样做:
public void LoadAlbumsWithPhotos ()
{
LoadOperation<Album> albumLoader = Context.Load( Context.GetAlbumsQuery() );
albumLoader.Completed += ( s, e ) =>
{
_albumStore = ( s as LoadOperation<Album> ).Entities.ToList();
};
}
然后可以通过以下方式检索照片:
var photos = _albumStore.First().Photos.Select( p => p);
希望这有帮助。