0

我已将我的表“tblFile”添加到我的 .dbml 中,但它的类型是“EntitySet tblFiles

但是对于具有相同关联的另一个表,它的类型是“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;
    }
4

2 回答 2

0

你应该试试这个

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

因为tblFiles有返回类型EntitySet<tblFile>(这是一个集合)而tblDocTranstoCons有返回类型tblDocTranstoCon

或者您应该在 dbml 设计器中更改其关联。

于 2012-11-08T12:24:04.210 回答
0

这看起来像是一项工作,SelectMany它需要一个函数,该函数从列表中的每个项目中获取一个“子列表”,然后将所有子列表连接到一个列表中(因为EntitySet<T>implements IEnumerable<T>)。尝试:

w = document.tblTransmittalls.SelectMany(dx => dx.tblFiles)
于 2012-11-08T12:24:19.447 回答