0

テーブル「tblFile」を.dbmlに追加しましたが、そのタイプは「EntitySettblFiles」です。

しかし、同じ関連付けを持つ別のテーブルの場合、そのタイプは「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これは、リストの各アイテムから「子リスト」を取得し、すべての子リストを1つのリストに連結する関数を受け取るジョブのように見えます(がEntitySet<T>実装されているためIEnumerable<T>)。試す:

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