示例#1
0
        /// <summary>
        /// This Method is a javascript callable method.
        /// </summary>
        /// <param name="e">A parameter from javascript.</param>
        /// <param name="y">A callback to javascript.</param>
        public void WebMethod2()
        {
            // !!! what about securestring?

            // X:\jsc.svn\examples\javascript\LINQ\test\TestSelectOfSelect\TestSelectOfSelect\ApplicationWebService.cs
            // x:\jsc.svn\examples\javascript\linq\test\testselectandsubselect\testselectandsubselect\applicationwebservice.cs
            // x:\jsc.svn\examples\javascript\linq\test\testselectscalaraverage\testselectscalaraverage\applicationwebservice.cs

            {
                var k = new Data.PerformanceResourceTimingData2.ApplicationPerformance().Insert(
                    new Data.PerformanceResourceTimingData2ApplicationPerformanceRow {
                    Tag = " hi ", connectStart = 1, connectEnd = 2
                }
                    );

                new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance().Insert(
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow {
                    ApplicationPerformance = k, name = "!first", connectStart = 6
                },
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow {
                    ApplicationPerformance = k, name = "!first1", connectStart = 3
                },
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow {
                    ApplicationPerformance = k, name = "!first2", connectStart = 133
                },
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow {
                    ApplicationPerformance = k, name = "!last", connectStart = 140
                }
                    );
            }


            var uc = from k in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()

                     let avg = (
                from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                select kk.connectStart
                ).Average()

                               where k.connectStart >= avg

                               select new
            {
                avg,

                k = new { k.name, k.connectStart }


                // cannot just yet select all?
                //k
            };


            var data  = uc.AsDataTable();
            var first = uc.FirstOrDefault();

            Debugger.Break();
        }
        /// <summary>
        /// This Method is a javascript callable method.
        /// </summary>
        /// <param name="e">A parameter from javascript.</param>
        /// <param name="y">A callback to javascript.</param>
        public void WebMethod2()
        {
            // !!! what about securestring?

            // X:\jsc.svn\examples\javascript\LINQ\test\TestSelectOfSelect\TestSelectOfSelect\ApplicationWebService.cs
            // x:\jsc.svn\examples\javascript\linq\test\testselectandsubselect\testselectandsubselect\applicationwebservice.cs
            // x:\jsc.svn\examples\javascript\linq\test\testselectscalaraverage\testselectscalaraverage\applicationwebservice.cs

            {
                var k = new Data.PerformanceResourceTimingData2.ApplicationPerformance().Insert(
                    new Data.PerformanceResourceTimingData2ApplicationPerformanceRow { Tag = " hi ", connectStart = 1, connectEnd = 2 }
                );

                new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance().Insert(
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow { ApplicationPerformance = k, name = "!first", connectStart = 6 },
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow { ApplicationPerformance = k, name = "!first1", connectStart = 3 },
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow { ApplicationPerformance = k, name = "!first2", connectStart = 133 },
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow { ApplicationPerformance = k, name = "!last", connectStart = 140 }
                );
            }


            var uc = from k in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()

                     let avg = (
                            from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                            select kk.connectStart
                         ).Average()

                     where k.connectStart >= avg

                     select new
                     {

                         avg,

                         k = new { k.name, k.connectStart }


                         // cannot just yet select all?
                         //k
                     };


            var data = uc.AsDataTable();
            var first = uc.FirstOrDefault();

            Debugger.Break();
        }
        /// <summary>
        /// This Method is a javascript callable method.
        /// </summary>
        /// <param name="e">A parameter from javascript.</param>
        /// <param name="y">A callback to javascript.</param>
        public void WebMethod2()
        {
            // PerformanceResourceTimingData2ApplicationPerformance Context has key and table to insert to?
            var k = new Data.PerformanceResourceTimingData2.ApplicationPerformance().Insert(
                new Data.PerformanceResourceTimingData2ApplicationPerformanceRow { Tag = " hi ", connectStart = 1, connectEnd = 2 }
            );

            var kk = new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance().Insert(
                new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow { ApplicationPerformance = k, name = "!" }
            );

            //            select 'Select' as diagnostics,
            //         __h__TransparentIdentifier0.`z` as `z`,
            //         __h__TransparentIdentifier0.`x_Tag` as `Tag`,
            //         __h__TransparentIdentifier0.`x_connectStart` as `connect.connectStart`,
            //         __h__TransparentIdentifier0.`x_connectEnd` as `connect.connectEnd`
            //from(select 'Select' as diagnostics,
            //                 @arg0 as `z`
            //        from `PerformanceResourceTimingData2.ApplicationPerformance` as x
            //        ) as __h__TransparentIdentifier0
            //limit @arg1




            // X:\jsc.svn\examples\javascript\LINQ\test\TestSelectOfSelect\TestSelectOfSelect\ApplicationWebService.cs
            Func<Data.PerformanceResourceTimingData2ApplicationPerformanceKey , IQueryStrategy<Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow>> child1 =
                x =>
                    //from xx in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance("file:PerformanceResourceTimingData2.xlsx.sqlite")
                    from xx in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                    where xx.ApplicationPerformance == x
                    select xx;



            var q = from x in new Data.PerformanceResourceTimingData2.ApplicationPerformance()
                    let zzz = "!"
                    let zz = "???"
                    //let qq = new { u = "!!!", x.Tag }

                    //let qq = new object()

                    // Error	285	An expression tree may not contain a call or invocation that uses optional arguments	X:\jsc.svn\examples\javascript\linq\test\TestSelectAndSubSelect\TestSelectAndSubSelect\ApplicationWebService.cs	54	30	TestSelectAndSubSelect
                    // Error	267	An expression tree may not contain a named argument specification	X:\jsc.svn\examples\javascript\linq\test\TestSelectAndSubSelect\TestSelectAndSubSelect\ApplicationWebService.cs	57	30	TestSelectAndSubSelect
                    // !!! LINQ makes us send the arg to sql server. shall we use securestring to mark it as non sendable?
                    //let qq = (from xx in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance("file:PerformanceResourceTimingData2.xlsx.sqlite")
                    //          select xx).FirstOrDefault()

                    // !!! by moveing the other query out of current stack we shall be able to call it
                    //let qq = child1(x).FirstOrDefault()
                    let qq = child1(x.Key).FirstOrDefault()

                    orderby x.Key descending

                    select new
                    {
                        qq,
                        x.Key,

                        zzz,
                        zz,


                        //  __h__TransparentIdentifier1.`zz` as `z.zz`,
                        fz = new { zz, x.Tag },

                        x.Tag,

                        //x.connectStart,
                        //x.connectEnd

                        // cant detect those members just yet
                        connect = new { x.connectStart, x.connectEnd }
                    };

            var f = q.FirstOrDefault();

            Debugger.Break();
        }
        /// <summary>
        /// This Method is a javascript callable method.
        /// </summary>
        /// <param name="e">A parameter from javascript.</param>
        /// <param name="y">A callback to javascript.</param>
        public void WebMethod2()
        {
            // X:\jsc.svn\examples\javascript\LINQ\test\TestSelectOfSelect\TestSelectOfSelect\ApplicationWebService.cs
            // x:\jsc.svn\examples\javascript\linq\test\testselectandsubselect\testselectandsubselect\applicationwebservice.cs
            // x:\jsc.svn\examples\javascript\linq\test\testselectscalaraverage\testselectscalaraverage\applicationwebservice.cs

            {
                var k = new Data.PerformanceResourceTimingData2.ApplicationPerformance().Insert(
                    new Data.PerformanceResourceTimingData2ApplicationPerformanceRow {
                    Tag = " hi ", connectStart = 1, connectEnd = 2
                }
                    );

                new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance().Insert(
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow {
                    ApplicationPerformance = k, name = "!first", connectStart = 6
                },
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow {
                    ApplicationPerformance = k, name = "!last", connectStart = 140
                }
                    );
            }

            var kall = new Data.PerformanceResourceTimingData2.ApplicationPerformance().AsDataTable();
            var all  = new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance().AsDataTable();


            var uc = from k in new Data.PerformanceResourceTimingData2.ApplicationPerformance()

                     let avg = (
                from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                where kk.ApplicationPerformance == k.Key
                select kk.connectStart
                ).Average()
                               // selec string bufffer?


                               let count = (
                from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                where kk.ApplicationPerformance == k.Key
                select kk.connectStart
                ).Count()


                                           let c = new { count }

            //where count > 1
            //where count > 2

            select new
            {
                k.Key,

                //w = new StringBuilder(
                k.Tag,

                //avg,

                c,

                count,

                //count = (
                //   from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                //   where kk.ApplicationPerformance == k.Key
                //   select kk.connectStart
                //).Count(),

                avg = (
                    from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                    where kk.ApplicationPerformance == k.Key
                    select kk.connectStart
                    ).Average(),

                first = (
                    from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                    where kk.ApplicationPerformance == k.Key
                    select kk.name
                    ).FirstOrDefault(),

                last = (
                    from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                    where kk.ApplicationPerformance == k.Key
                    orderby kk.Key descending
                    select kk.name
                    ).FirstOrDefault()
            } into g
            orderby g.avg descending
            select g;



            var dt = uc.AsDataTable();


            var ff = uc.FirstOrDefault();

            Debugger.Break();
        }
        /// <summary>
        /// This Method is a javascript callable method.
        /// </summary>
        /// <param name="e">A parameter from javascript.</param>
        /// <param name="y">A callback to javascript.</param>
        public void WebMethod2()
        {
            // X:\jsc.svn\examples\javascript\LINQ\test\TestSelectOfSelect\TestSelectOfSelect\ApplicationWebService.cs
            // x:\jsc.svn\examples\javascript\linq\test\testselectandsubselect\testselectandsubselect\applicationwebservice.cs
            // x:\jsc.svn\examples\javascript\linq\test\testselectscalaraverage\testselectscalaraverage\applicationwebservice.cs

            {
                var k = new Data.PerformanceResourceTimingData2.ApplicationPerformance().Insert(
                    new Data.PerformanceResourceTimingData2ApplicationPerformanceRow { Tag = " hi ", connectStart = 1, connectEnd = 2 }
                );

                new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance().Insert(
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow { ApplicationPerformance = k, name = "!first", connectStart = 6 },
                    new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow { ApplicationPerformance = k, name = "!last", connectStart = 140 }
                );
            }

            var kall = new Data.PerformanceResourceTimingData2.ApplicationPerformance().AsDataTable();
            var all = new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance().AsDataTable();


            var uc = from k in new Data.PerformanceResourceTimingData2.ApplicationPerformance()

                     let avg = (
                            from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                            where kk.ApplicationPerformance == k.Key
                            select kk.connectStart
                         ).Average()
                     // selec string bufffer?


                     let count = (
                             from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                             where kk.ApplicationPerformance == k.Key
                             select kk.connectStart
                          ).Count()


                     let c = new { count }

                     //where count > 1
                     //where count > 2

                     select new
                     {
                         k.Key,

                         //w = new StringBuilder(
                         k.Tag,

                         //avg,

                         c,

                         count,

                         //count = (
                         //   from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                         //   where kk.ApplicationPerformance == k.Key
                         //   select kk.connectStart
                         //).Count(),

                         avg = (
                            from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                            where kk.ApplicationPerformance == k.Key
                            select kk.connectStart
                         ).Average(),

                         first = (
                            from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                            where kk.ApplicationPerformance == k.Key
                            select kk.name
                         ).FirstOrDefault(),

                         last = (
                            from kk in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                            where kk.ApplicationPerformance == k.Key
                            orderby kk.Key descending
                            select kk.name
                         ).FirstOrDefault()

                     } into g
                     orderby g.avg descending
                     select g;



            var dt = uc.AsDataTable();


            var ff = uc.FirstOrDefault();

            Debugger.Break();
        }
        /// <summary>
        /// This Method is a javascript callable method.
        /// </summary>
        /// <param name="e">A parameter from javascript.</param>
        /// <param name="y">A callback to javascript.</param>
        public void WebMethod2()
        {
            // PerformanceResourceTimingData2ApplicationPerformance Context has key and table to insert to?
            var k = new Data.PerformanceResourceTimingData2.ApplicationPerformance().Insert(
                new Data.PerformanceResourceTimingData2ApplicationPerformanceRow {
                Tag = " hi ", connectStart = 1, connectEnd = 2
            }
                );

            var kk = new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance().Insert(
                new Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow {
                ApplicationPerformance = k, name = "!"
            }
                );

            //            select 'Select' as diagnostics,
            //         __h__TransparentIdentifier0.`z` as `z`,
            //         __h__TransparentIdentifier0.`x_Tag` as `Tag`,
            //         __h__TransparentIdentifier0.`x_connectStart` as `connect.connectStart`,
            //         __h__TransparentIdentifier0.`x_connectEnd` as `connect.connectEnd`
            //from(select 'Select' as diagnostics,
            //                 @arg0 as `z`
            //        from `PerformanceResourceTimingData2.ApplicationPerformance` as x
            //        ) as __h__TransparentIdentifier0
            //limit @arg1



            // X:\jsc.svn\examples\javascript\LINQ\test\TestSelectOfSelect\TestSelectOfSelect\ApplicationWebService.cs
            Func <Data.PerformanceResourceTimingData2ApplicationPerformanceKey, IQueryStrategy <Data.PerformanceResourceTimingData2ApplicationResourcePerformanceRow> > child1 =
                x =>
                //from xx in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance("file:PerformanceResourceTimingData2.xlsx.sqlite")
                from xx in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance()
                where xx.ApplicationPerformance == x
                select xx;



            var q = from x in new Data.PerformanceResourceTimingData2.ApplicationPerformance()
                    let zzz                   = "!"
                                       let zz = "???"
                                                //let qq = new { u = "!!!", x.Tag }

                                                //let qq = new object()

                                                // Error	285	An expression tree may not contain a call or invocation that uses optional arguments	X:\jsc.svn\examples\javascript\linq\test\TestSelectAndSubSelect\TestSelectAndSubSelect\ApplicationWebService.cs	54	30	TestSelectAndSubSelect
                                                // Error	267	An expression tree may not contain a named argument specification	X:\jsc.svn\examples\javascript\linq\test\TestSelectAndSubSelect\TestSelectAndSubSelect\ApplicationWebService.cs	57	30	TestSelectAndSubSelect
                                                // !!! LINQ makes us send the arg to sql server. shall we use securestring to mark it as non sendable?
                                                //let qq = (from xx in new Data.PerformanceResourceTimingData2.ApplicationResourcePerformance("file:PerformanceResourceTimingData2.xlsx.sqlite")
                                                //          select xx).FirstOrDefault()

                                                // !!! by moveing the other query out of current stack we shall be able to call it
                                                //let qq = child1(x).FirstOrDefault()
                                                let qq = child1(x.Key).FirstOrDefault()

                                                         orderby x.Key descending

                                                         select new
            {
                qq,
                x.Key,

                zzz,
                zz,


                //  __h__TransparentIdentifier1.`zz` as `z.zz`,
                fz = new { zz, x.Tag },

                x.Tag,

                //x.connectStart,
                //x.connectEnd

                // cant detect those members just yet
                connect = new { x.connectStart, x.connectEnd }
            };

            var f = q.FirstOrDefault();

            Debugger.Break();
        }