让我先说我是 LINQ 的新手,这是我最初没有编写但正在尝试修复的代码。我对这个错误做了很多研究,但我还没有发现任何有用的东西。事实上,这个错误有点让我头晕目眩。反正...
我有一个 LINQ 查询,它从三个 SharePoint 列表中选择一些数据。这里是:
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();
}
以下字段可以为空:
- m.ProductID
- m.DocID
- d.DocumentType
- 中
当我调试时,这些都不会引发错误,但是当页面加载时它会: System.InvalidOperationException: Nullable object must have a value
这是否意味着我选择的字段之一为空,或者连接字段之一?查了资料,我觉得不是这样的。如果您需要我提供更多信息,请告诉我。