0

ドキュメントの例を使用します。

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);
}

問題は、Albums リストが null を返すことです (生成されたクエリは問題ありません)。
次のように変更すると機能Albumsします。

public IEnumerable<dynamic> Albums { get; set; }

リストを次Albumsのように定義しながら、テーブルを明示的にキャストするにはどうすればよいですか?AlbumsIEnumerable<Album>

注:明らかに他のテーブルを使用していますが、構造は似ています。POCO クラスにはさらにいくつかのフィールド (?) があるため、「Album」テーブルは魔法のようにキャストされないと想定しています。

4

1 に答える 1

1

Albums プロパティは、IEnumerable<Album> ではなく IList<Album> である必要があります。

于 2013-08-06T18:29:01.160 に答える