2
我有下面的代碼,我已經能夠湊齊在一起看在線一堆不同的來源,但是下面實際上拋出一個空引用異常的底線。如何執行聯接或在關係或預取中放置where子句? (LLBLGen)
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(...),並沒有一個是null。
我幾個星期前移過這一點,但如果我沒有記錯,當我終於能得到抱着我的老闆,他說我的預取錯誤。不幸的是,我不記得這個代碼是用什麼方法來驗證你的答案代碼是100%,但我很自信你是對的,所以我接受你的答案。謝謝。 :) – KSwift87