private static bool DoesMethodReturnDbSet(IdentifierNameSyntax methodIdent, SyntaxNodeAnalysisContext context, EFUsageContext efContext, EFCodeFirstClassInfo clsInfo) { var method = methodIdent.GetDeclaringMethod(context); //TODO: Handle cases of lambda/Func<T, ...> invocation if (method != null) { var returnStatements = method.DescendantNodes().OfType<ReturnStatementSyntax>(); //It has to be all so that we can be conclusive that all points of return a DbSet<T> bool returnsDbSet = returnStatements.All(ret => ReturnStatementTracesBackToDbSet(ret, context, clsInfo)); return returnsDbSet; } return false; }