private static void AnalyzeLinqExpression(SyntaxNodeAnalysisContext context)
{
var efContext = new EFUsageContext(context);
//Found nothing, don't bother continuing
if (!efContext.Build())
{
return;
}
//Check if the lambda is part of an IQueryable call chain. If so, check that it only contains valid
//EF LINQ constructs (initializers, entity members, entity navigation properties)
var query = context.Node as QueryExpressionSyntax;
var lambda = context.Node as LambdaExpressionSyntax;
if (query != null)
{
AnalyzeQueryExpression(context, efContext, query);
}
else if (lambda != null)
{
AnalyzeLambdaInLinqExpression(context, efContext, lambda);
}
}