我遇到一個與通過引用更新對象有關的問題,並且不確定到底發生了什麼。更新foreach中的變量
我需要刪除的規則列表和日誌記錄我需要加載另一個領域
ruleItem.ReferencedItemValue = eventEntity.Title;
當
builder.LogDelete(showRule, showRuleResource.ToAuditLog(), "Logic Rule");
被稱爲未填充的ReferencedItemValue
。
任何想法,建議,選擇? 感謝
CODE:
public void DeleteCustomLogicRule(int[] ruleIds){
var rules = uow.Context.ShowRules.Where(sr => ruleIds.Contains(sr.Id)).ToList();
if (rules.Any())
{
var showId = rules.FirstOrDefault().ShowId;
var builder = AuditBuilder.FromShowId(showId);
rules.ForEach(showRule =>
{
var showRuleResource = ToShowRuleResource(showRule);
FillReferenceValue(showRuleResource);
builder.LogDelete(showRule, showRuleResource.ToAuditLog(), "Logic Rule");
});
uow.Context.SaveChanges();
builder.ToDatabase();
}
}
private void FillReferenceValue(ShowRuleResource showRuleResource)
{
foreach (var ruleItem in showRuleResource.ItemsPredicateAppliesTo.ToList())
{
FillRuleItem(ruleItem);
}
}
private void FillRuleItem(RuleItemResource ruleItem)
{
var eventEntity = uow.Context.Events.FirstOrDefault(e => e.Id == ruleItem.ReferencedItemId.Value);
if (eventEntity != null)
ruleItem.ReferencedItemValue = eventEntity.Title;
}
你確定'FillRuleItem()'中的'eventEntity'不爲null?你在調試器下運行它嗎?另外,我認爲'RuleItemResource'是一個不是結構體的類?而且我不確定'FillReferenceValue()'中的'.ToList()'是否必要。 –
@MthetheWWatson在'FillRuleItem()' – DGibbs
@DGibbs中的賦值之前有一個空檢查這就是我要問的原因。如果eventEntity始終爲空,則不會發生任務 - 這是OP要求的內容。 –