2013-08-06 24 views
0

使用從文檔的例子:如何在Simple.Data中使用「With」查詢投射項目?

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的專輯列表(所生成的查詢是OK)。
如果我改變Albums到它的工作原理:

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

我怎樣才能顯式轉換Albums表,同時定義Albums列表爲IEnumerable<Album>

注:我顯然使用其他表格,但具有相似的結構。我假設「專輯」表沒有奇蹟般地施放,因爲POCO類有更多的字段(?)。

回答

1

專輯屬性應該是IList <專輯>而不是IEnumerable <專輯>。

+1

謝謝。我想你應該在[documentation](http://simplefx.org/simpledata/docs/pages/Retrieve/LazyVsEagerLoading.htm)中注意到這個...或者我錯過了什麼? – seldary

+0

不,你沒有錯過任何東西,事實上這裏給出的例子有誤導性。我會得到修正,謝謝指出。 –

+0

文檔已更新以進行更正。 – Hmobius