Contains 演算子で失敗する 2 段階のクエリ結合があります。私が得ているエラーは、オブジェクト参照がオブジェクトのインスタンスに設定されていないことです。前もって動的クエリを作成し、結合で実行しています。
これは機能します: AQuery.Where("AssigneeName == \"Michael Jackson\"")
これは、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」で失敗します: AQuery.Where("AssigneeName.Contains(\"Michael Jackson\")")
これが私のコードです:
using (ReqEntitiesDataContext dc = new ReqEntitiesDataContext(SPContext.Current.Web.Url))
{
// LINQ Deferred Query Execution
var AQuery = from a in dc.Assignees select a;
if (assigneeQuery.Count > 0)
{
AQuery = from a in AQuery.Where(string.Join(" ", assigneeQuery.ToArray())) select a;
}
var RQuery = from r in dc.ReqLibrary select r;
if (requestQuery.Count > 0)
{
RQuery = from r in RQuery.Where(string.Join(" ", requestQuery.ToArray())) select r;
}
// LINQ 2 Stage Query Execution Join
var resultQuery = from a in AQuery.ToList()
join r in RQuery on a.Title equals r.RequestID
orderby r.RequestID ascending
select new RequestType
{
RequestID = r.RequestID,
ReceivedDate = r.ReceivedDate.Value,
RequestType = r.RequestType,
Assignee = a.AssigneeName,
AssigneeSection = a.AssigneeSection,
AssigneeDivision = a.AssigneeDivision,
RequestStatus = r.RequestStatus
};
CreateTableResults(resultQuery);
}