コード例 #1
0
ファイル: ExpressionHelper.cs プロジェクト: 6bee/Remote.Linq
        /// <summary>
        /// Default procedure to translatest a given <see cref="SystemExpression"/> into a <see cref="RemoteExpression"/>.
        /// </summary>
        public static RemoteExpression TranslateExpression(SystemExpression expression, IExpressionToRemoteLinqContext?context = null)
        {
            expression.AssertNotNull(nameof(expression));
            var slinq1 = expression.SimplifyIncorporationOfRemoteQueryables();
            var rlinq1 = slinq1.ToRemoteLinqExpression(context);
            var rlinq2 = rlinq1.ReplaceQueryableByResourceDescriptors(context?.TypeInfoProvider);
            var rlinq3 = rlinq2.ReplaceGenericQueryArgumentsByNonGenericArguments();

            return(rlinq3);
        }