2012-11-08 55 views
0

我已經加入我的表「tblFile」我的.dbml,但它的類型是「EntitySet的tblFiles生產的IEnumerable

但對於同一協會的另一個表,它的類型是‘tblDocTranstoCon’ 所以我有問題下面的LINQ查詢 「W」 不是IEnumerable的,而是 「Z」 是 「的IEnumerable」

z = document.tblTransmittalls.Select(dp => dp.tblDocTranstoCons), 
w = document.tblTransmittalls.Select(dx => dx.tblFiles) 

我怎麼能解決這個問題,生產的IEnumerable。

[Association(Name="tblTransmittall_tblFile", Storage="_tblFiles", ThisKey="DocID,TransId", OtherKey="DocId,TransId")] 
public EntitySet<tblFile> tblFiles 
{ 
    get 
    { 
     return this._tblFiles; 
    } 
    set 
    { 
     this._tblFiles.Assign(value); 
    } 
} 

[Association(Name="tblTransmittall_tblDocTranstoCon", Storage="_tblDocTranstoCons", ThisKey="DocID,TransId", OtherKey="Docid,Transid", IsUnique=true, IsForeignKey=false)] 
public tblDocTranstoCon tblDocTranstoCons 
{ 
    get 
    { 
     return this._tblDocTranstoCons.Entity; 
    } 

回答

0

呦ü應該試試這個

w = document.tblTransmittalls.SelectMany(dx => dx.tblFiles); 

因爲tblFiles有返回類型EntitySet<tblFile>(這是一個Collection),而tblDocTranstoCons具有返回類型tblDocTranstoCon

,或者你應該改變DBML設計師的公司章程。

+0

感謝它的工作 – masoud

0

這看起來像SelectMany工作這需要的是會從列表中的每一項「子列表」功能,然後串接所有的孩子一起列出到一個列表(因爲EntitySet<T>實現IEnumerable<T>)。嘗試:

w = document.tblTransmittalls.SelectMany(dx => dx.tblFiles) 
+0

感謝它的工作原理 – masoud