2

LINQIEnumerableクエリを使用してデータを入力しています。その後IEnumerable、別のクラスに渡され、パラメーターとして (Telerik レポートに) 追加されます。この行で、私はSystem.NullReferenceException. デバッグを通じて、これIEnumerableに値のリストがあることを確認したので、なぜこれが起こっているのかわかりません。

私のコードの関連するスニペットは次のとおりです。

Class1.cs

//Note that divisionList is an List of PKs and divisionTotalsList is a list of DivisionTotalsModel
foreach (int division in divisionList)
            {

                //LINQ Query
                IEnumerable<DivisionTotalsModel> divSubset =
                    from divno in divisionTotalsList
                    where divno.DivisionNo == division
                    select divno;


                //Create Report
                if(divSubset.Any())
                    Class2.DoStuff(divSubset);
            }

Class2.cs

public void DoStuff(IEnumerable<DivisionTotalsModel> divisionList){
     using (var divisionTotalsReport = new DivisionReport())
        {
          //There are other parameters here that are working successfully
          //This is the line that is failing
          divisionTotalsReport.ReportParameters["list"].Value = divisionList;
        }
}

ここでエラーが発生するのはなぜですか?

ReportParameters他のパラメーター (DateTimeおよびint) と連動していますが、コード スニペットには含めませんでした。

を試したところToList()正常に受信できましたList<T>が、Telerik にはIEnumerable<T>.

DateTime以前は他のパラメーター (および)を使用してレポートを正常に作成できたため、問題は新しいパラメーターintにあるはずです。IEnumerableこの問題は、この新しいパラメーターを追加しようとしたときにのみ発生しました。

デバッガーを調べて IEnumerable を調べたところ、ベースが null であると表示されていますが、非パブリック メンバー -> ソースに移動するとアイテムが表示されます。

解決

問題を突き止めました。データ ソースをパラメーターとしてフィードしようとしていました。代わりにデータソースとして設定しましたが、完全に機能します。

4

1 に答える 1