0

私はLINQの初心者であり、これは私が最初に作成したのではなく、修正しようとしているコードであると言って、この前置きをさせてください。私はこのエラーについて多くの調査を行いましたが、まだ役立つものは何も見つかりませんでした。実際、このエラーは私の頭を回転させます。ともかく...

3つのSharePointリストからいくつかのデータを選択するLINQクエリがあります。ここにあります:

    private void loadPEGrid(int id)
    {
        dc = new SpEntityDataContext(SPContext.GetContext(this.Context).Web.Url);

        EntityList<ProductDocumentMapItem> dMaps = dc.GetList<ProductDocumentMapItem>("Product Document Map");

        object mappedItems = null;

        mappedItems = from m in dMaps
                      join p in dc.PEProducts on m.ProductID.Value equals p.Id.Value
                      join d in dc.ProductDocuments on m.DocID.Value equals d.Id.Value
                      where m.ProductID.Value == id && m.ProductType == "PE"
                      select new { 
                          p.Grade, 
                          d.Path, 
                          d.DocumentType, 
                          d.Title, 
                          d.Name, 
                          Language = d.Language.Title, 
                          m.Id, 
                          DocId = m.DocID };

        GridViewProducts.KeyFieldName = "Id";
        GridViewProducts.DataSource = mappedItems;
        GridViewProducts.DataBind();
    }

次のフィールドはnull許容です。

  • m.ProductID
  • m.DocID
  • d.DocumentType
  • m.Id

デバッグするとき、これはエラーをスローしませんが、ページがロードされるときはエラーをスローします:System.InvalidOperationException:Nullableオブジェクトには値が必要です

これは、選択しているフィールドの1つがnullであることを意味しますか、それとも結合フィールドの1つを意味しますか?データを確認したので、そうではないと思います。私からの情報がさらに必要な場合はお知らせください。

4

1 に答える 1

1

System.InvalidOperationException: Null 許容オブジェクトには値が必要です

この例外は、null 許容型のValueプロパティを取得しようとするとスローされます。つまり、次の 1 つ以上が true であることを意味します。

  • の少なくとも 1 つのオブジェクトのdMapsプロパティProductIDが null に等しい
  • の少なくとも 1 つのオブジェクトのdMapsプロパティDocIDが null に等しい
  • の少なくとも 1 つのオブジェクトのdc.PEProductsプロパティIdが null に等しい
  • の少なくとも 1 つのオブジェクトのdc.ProductDocumentsプロパティIdが null に等しい
  • クエリ以外で例外が発生しました
于 2013-01-25T10:18:51.447 に答える