我已将我的表“tblFile”添加到我的.dbml中,但它的类型是“EntitySet tblFiles
但对于具有相同Association的另一个表,其类型为“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 :(得分:0)
你应该试试这个
w = document.tblTransmittalls.SelectMany(dx => dx.tblFiles);
因为tblFiles
的返回类型为EntitySet<tblFile>
(这是一个集合),而tblDocTranstoCons
的返回类型为tblDocTranstoCon
或者您应该在dbml designer中更改其关联。
答案 1 :(得分:0)
这看起来像SelectMany
的作业,它从一个列表中的每个项目获取一个“子列表”,然后将所有子列表连接成一个列表(因为EntitySet<T>
实现IEnumerable<T>
)。尝试:
w = document.tblTransmittalls.SelectMany(dx => dx.tblFiles)