/// <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(string e, Action<string> y)
        {
            var r = new Data.Book1Sheet1Row
            {
                Title = "foo",
                Content = "bar"
            };

            new AppEngineImplicitDataRow.Data.Book1.Sheet1().Insert(r);
            new AppEngineImplicitDataRow.Data.Book1.Sheet1().Insert(
                    new Data.Book1Sheet1Row
                    {
                        Title = "foo",

                        // can we handle null yet?
                        Content = null
                    }
            );

            var z = new AppEngineImplicitDataRow.Data.Book1.Sheet1().SelectAllAsDataTable();



            //DataRow rr = r;

            // Unable to cast object of type 'System.DBNull' to type 'System.String'.

            var x = new AppEngineImplicitDataRow.Data.Book1.Sheet1().SelectAllAsEnumerable().ToArray();


            var rr = z.Rows[0];
            Data.Book1Sheet1Row rrr = rr;

            var xx =
                from k in new AppEngineImplicitDataRow.Data.Book1.Sheet1()
                //where k.Title == "foo"
                orderby k.Title
                select k;

            var xxx = xx.ToArray();

        }
        public void WebMethod2(Action<int> yield)
        {
            //  <h2> <i>Could not load file or assembly 'ScriptCoreLib.Extensions

            // Additional information: Invalid connection string: invalid URI

            var x = new XSLXAssetWithXElement.Data.Book1Sheet1();

            // shall the key route to gethashcode?

            // ex.Message = "SQL logic error or missing database\r\ntable Book1.Sheet1 has no column named Sheet2"

            var data = new Data.Book1Sheet1Row { Zoo = 77, Element = new XElement("foo"), Sheet2 = Data.Sheet2.EUR, Flag = true, Sheet14 = Data.Sheet2.ZEN };
            var newKey = x.Insert(data);

            var data2 = new Data.Book1Sheet1Row { Zoo = 77, Element = new XElement("foo"), Sheet2 = Data.Sheet2.EUR, Flag = false, Sheet14 = Data.Sheet2.ZEN };
            // implemented for appengine yet? almost.
            var newKey2 = x.InsertAsync(data2);
            // newKey2 = Id = 0x00000001, Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}"


            //Implementation not found for type import :
            //type: System.Threading.Tasks.Task

            //method: System.Threading.Tasks.Task`1[TResult[]] WhenAll[TResult](System.Threading.Tasks.Task`1[TResult][])

            //Did you forget to add the [Script] attribute?
            //Please double check the signature!


            // implemented for appengine yet?
            var last3 = x.FirstOrDefaultAsync();
            // last3 = Id = 0x00000001, Status = RanToCompletion, Method = "{null}", Result = "1, , 77, PGZvbyAvPg==, True, 0, 2, 0, , 2014-12-07 7:20:24 PM"


            //new SQLiteDataAdapter().sele
            // Unable to cast object of type 'System.String' to type 'System.Xml.Linq.XElement
            //var y = x.SelectAllAsEnumerable().ToArray();
            var y = x.AsEnumerable().ToArray();

            Console.WriteLine(new { y.Length });

            yield(y.Length);
        }