public static SqlCommandData GenerateSqlQuery(
            QueryModel queryModel,
            IServiceLocator locator,
            IOracleConverterFactory converterFactory,
            IExtensibilityProvider extensibilityProvider)
        {
            Contract.Requires(queryModel != null);
            Contract.Requires(locator != null);
            Contract.Requires(converterFactory != null);
            Contract.Requires(extensibilityProvider != null);

            var visitor =
                new SqlGeneratorQueryModelVisitor(
                    new MainQueryParts(
                        locator,
                        converterFactory,
                        extensibilityProvider.ResolvePlugins<IQuerySimplification>(),
                        extensibilityProvider.ResolvePlugins<IExpressionMatcher>(),
                        extensibilityProvider.ResolvePlugins<IMemberMatcher>(),
                        extensibilityProvider.ResolvePlugins<IProjectionMatcher>()));
            visitor.VisitQueryModel(queryModel);
            return new SqlCommandData(visitor.QueryParts);
        }
Пример #2
0
        public static SqlCommandData GenerateSqlQuery(
            QueryModel queryModel,
            IServiceLocator locator,
            IOracleConverterFactory converterFactory,
            IExtensibilityProvider extensibilityProvider)
        {
            Contract.Requires(queryModel != null);
            Contract.Requires(locator != null);
            Contract.Requires(converterFactory != null);
            Contract.Requires(extensibilityProvider != null);

            var visitor =
                new SqlGeneratorQueryModelVisitor(
                    new MainQueryParts(
                        locator,
                        converterFactory,
                        extensibilityProvider.ResolvePlugins <IQuerySimplification>(),
                        extensibilityProvider.ResolvePlugins <IExpressionMatcher>(),
                        extensibilityProvider.ResolvePlugins <IMemberMatcher>(),
                        extensibilityProvider.ResolvePlugins <IProjectionMatcher>()));

            visitor.VisitQueryModel(queryModel);
            return(new SqlCommandData(visitor.QueryParts));
        }