我正在尝试调试错误进程。当我们的LINQ to SQL数据上下文更新了LoadOptions时,会发生错误。有没有办法将DataLoadOptions对象的值转换为人类可读的文本?
以下是错误消息:
EXCEPTION (InvalidOperationException):
Setting load options is not allowed after results have been returned from a query.
INNER EXCEPTION:
STACKTRACE:
at System.Data.Linq.DataContext.set_LoadOptions(DataLoadOptions value)
以下是代码:
if (loadOptions != null)
{
try
{
Domain.LoadOptions = loadOptions;
}
catch (Exception ex)
{
// log and continue
LogManager.Save(Log.Types.Error, ex);
LogManager.Save(Log.Types.Warning, "Error setting DataContext LoadOptions, related data may not be loaded.");
}
}
上面代码的方法是从其他地方调用的,可以传入DataLoadOption
对象。如果存在,DataLoadOption
对象的LoadWith
方法至少会调用一次,可能还会调用AssociateWith
方法。
为了协助我的调试,我想将所有LoadWith
和AssociateWith
选项写入我们的日志。或者,任何可以帮助我确定导致此方法的调用链的东西也会有所帮助,因为我确定在调用此方法之前使用了LINQ to SQL DataContext。 (在上面的代码中Domain
是我们的DataContext。)