延迟加载实体时,是否有任何可能的日志记录方式。
我首先在Entity Framework 6中使用数据库。为了有用,在检索(非延迟)初始实体时,无需登录,而仅在延迟加载子实体时才需要登录。如果日志中包含以下任何信息,则可能有用:延迟加载的原始sql,延迟加载了哪些实体属性,触发了延迟加载的C#中的行号。
答案 0 :(得分:0)
这是一个古老的问题,但是其他人可能会遇到与我相同的问题。
看着official EF documentation about logging,我注意到样本中的延迟加载查询显示了一个名为@EntityKeyValue1
的参数。由于所有延迟加载的查询都将至少需要一个关键参数,因此我假设这一参数将始终存在。因此,我设法通过以下方式记录了所有延迟加载的查询:
Database.Log = s =>
{
if (s.Contains("@EntityKeyValue1"))
{
Console.WriteLine($"Lazy loading query: {s}");
}
};