コード例 #1
0
        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);
        }