C# 在foreach中更新变量
我有一个关于通过引用更新对象的问题,不确定到底发生了什么 我需要删除一个规则列表,对于日志记录,我需要加载另一个字段C# 在foreach中更新变量,c#,C#,我有一个关于通过引用更新对象的问题,不确定到底发生了什么 我需要删除一个规则列表,对于日志记录,我需要加载另一个字段 ruleItem.ReferencedItemValue = eventEntity.Title; 什么时候 被称为ReferencedItemValue时未填充 有什么想法、建议、替代方案吗? 谢谢 代码: 试试这个: rules.ForEach(showRule => { var item = showRule; var sho
ruleItem.ReferencedItemValue = eventEntity.Title;
什么时候
被称为ReferencedItemValue
时未填充
有什么想法、建议、替代方案吗?
谢谢
代码:
试试这个:
rules.ForEach(showRule =>
{
var item = showRule;
var showRuleResource = ToShowRuleResource(item);
FillReferenceValue(showRuleResource);
builder.LogDelete(item, showRuleResource.ToAuditLog(), "Logic Rule");
});
从此功能开始挖掘
private void FillRuleItem(RuleItemResource ruleItem)
这似乎是一种压力var eventEntity = uow.Context.Events.FirstOrDefault(e => e.Id == ruleItem.ReferencedItemId.Value);
为null。并且您确定
FillRuleItem()
中的eventEntity
不为null?你在调试器下运行过吗?另外,RuleItemResource
是一个类,而不是一个结构,我想?我不确定FillReferenceValue()
中的.ToList()
是否有必要。@MatthewWatson在FillRuleItem()
@DGibbs中的赋值之前有一个空检查,这就是我问的原因。如果eventEntity始终为null,则不会发生任何赋值操作,这正是OP所要求的。您在调试器中已完成此操作吗?我已使用调试器介入,并且eventEntity不是null,可能是一个闭包?:)Resharper没有指出,但我会尝试一下,无论如何是的,读一下Eric lippert的这篇博文:检查过了,它不是空的,我在你的代码中没有看到任何犯罪行为。它可以是linq的“延迟加载”,也可以是代码中特定位置的其他代码。可能showRuleResource.ToAuditLog()修改值。
private void FillRuleItem(RuleItemResource ruleItem)
var eventEntity = uow.Context.Events.FirstOrDefault(e => e.Id == ruleItem.ReferencedItemId.Value);