我有以下代码,我可以通过在线查看一堆不同的资源来拼凑起来,但是下面的代码实际上在底线引发了一个空引用异常。
GroupAgentEntity agent = new GroupAgentEntity();
RelationPredicateBucket pred = new RelationPredicateBucket();
pred.PredicateExpression.Add(PredicateFactory.CompareValue(GroupAgentFieldIndex.GroupId, ComparisonOperator.Equal, groupId));
pred.PredicateExpression.Add(PredicateFactory.CompareValue(GroupAgentFieldIndex.IsPrimary, ComparisonOperator.Equal, true));
pred.PredicateExpression.Add(PredicateFactory.CompareValue(GroupAgentFieldIndex.BeginDate, ComparisonOperator.LessEqual, DateTime.Now));
pred.PredicateExpression.Add(PredicateFactory.CompareNull(GroupAgentFieldIndex.EndDate));
pred.Relations.Add(GroupAgentEntity.Relations.AgentSplitGroupEntityUsingAgentSplitGroupId);
IPredicateExpression preFilter = new PredicateExpression(AgentSplitGroupFields.Name == "Broker");
PrefetchPath2 pre = new PrefetchPath2((int)EntityType.AgentSplitGroupEntity);
pre.Add(AgentSplitGroupEntity.PrefetchPathAgentSplitGroup, 0, preFilter);
if (deep)
{
pre.Add(GroupAgentEntity.PrefetchPathBroker);
pre.Add(GroupAgentEntity.PrefetchPathCarrierBroker);
}
this.DataAdapter.FetchEntityUsingUniqueConstraint(agent, pred.PredicateExpression, pre);
我正在尝试做的是从 GroupAgent 表连接到 AgentSplitGroup 表以及预取 AgentSplitGroupEntity 类型的实体。不幸的是,我在 LLBLGen 方面的经验相当有限(尤其是在谓词表达式方面)。
任何人都可以提供任何想法,说明为什么上面的代码会在底线抛出空引用异常?那,或者如果有人可以帮助我以另一种方式完成我需要的查询(但仍然使用谓词表达式),我将不胜感激。
请注意,我做了一件显而易见的事情,并在运行时检查了 FetchEntityUsingUniqueConstraint(...) 的参数,它们都不是空的。