如何从Simple.Data中的“With”查询中转换项目?

时间:2013-08-06 17:41:25

标签: c# casting simple.data

使用文档中的示例:

public class Artist
{
  public int ArtistId { get; set; }
  public string Name { get; set; }
  public IEnumerable<Album> Albums { get; set; }
}

...

var eagerDynamicArtist = db.Artists.FindAllByArtistId(22).WithAlbums().FirstOrDefault();

Console.WriteLine("Artist {0} {1}", eagerDynamicArtist.ArtistId, eagerDynamicArtist.Name);

foreach (var album in eagerDynamicArtist.Albums)
{
  Console.WriteLine("\t{0}", album.Title);
}

问题是,相册列表返回null(生成的查询正常) 如果我将Albums更改为:

,则有效
public IEnumerable<dynamic> Albums { get; set; }

如何将Albums列表定义为Albums,我如何显式转换IEnumerable<Album>表?

注意:我显然使用其他表,但具有类似的结构。我假设“专辑”表没有神奇地投射,因为POCO类有更多的字段(?)。

1 个答案:

答案 0 :(得分:1)

“相册”属性应为IList&lt;相册&gt;而不是IEnumerable&lt; Album&gt;。