我正在使用谓词查询的结果在 Linq 查询中编写联接。但它抛出以下错误。但是,当我在 SQL 中运行类似的查询时,它会返回预期的结果。
var predicate = PredicateBuilder.False<Product>();
foreach (var productId in productIds)
{
var tempGuid = productId;
predicate = predicate.Or(p => p.ProductId== tempGuid.ToString());
}
// This query is returning products back
var products = from p in context.ProductSet.AsExpandable().Where(predicate)
select p;
var accounts = (from a in context.AccountSet
join cl in context.ContractDetailSet
on a.AccountId equals cl.AccountId.Id
join p in products on \\ From predicate query
cl.ProductId.Id equals p.ProductId
where a.StateCode == AccountState.Active
select a).ToList();
注意:我最后删除了 ToList() 并且它不会抛出错误,但是当您尝试使用帐户对象时,它会再次抛出相同的错误。
错误
Microsoft.Xrm.Sdk.dll 中出现“System.NullReferenceException”类型的异常,但未在用户代码中处理。
附加信息:对象引用未设置为对象的实例。