public void SingleUnionWithSubSelect()
        {
            OrderCollection coll = new OrderCollection();
            coll.es.Connection.Name = "ForeignKeyTest";

            switch (coll.es.Connection.ProviderSignature.DataProviderName)
            {
                case "EntitySpaces.SqlServerCeProvider":
                case "EntitySpaces.SqlServerCe4Provider":
                    Assert.Ignore("Scalar SubSelects are not supported in SqlCe.");
                    break;

                default:
                    OrderQuery oq1 = new OrderQuery("o1");
                    OrderItemQuery oiq1 = new OrderItemQuery("oi1");

                    oq1.Select
                    (
                        oq1.OrderID,
                        oq1.OrderDate,
                        oiq1.Select(
                            oiq1.UnitPrice.Max())
                            .Where(oq1.OrderID == oiq1.OrderID).As("MaxUnitPrice")
                    );
                    oq1.Where(oq1.OrderDate.Between(Convert.ToDateTime("2005-01-01"), Convert.ToDateTime("2005-12-31")));

                    OrderQuery oq2 = new OrderQuery("o2");
                    OrderItemQuery oiq2 = new OrderItemQuery("oi2");

                    oq2.Select
                    (
                        oq2.OrderID,
                        oq2.OrderDate,
                        oiq2.Select(
                            oiq2.UnitPrice.Max())
                            .Where(oq2.OrderID == oiq2.OrderID).As("MaxUnitPrice")
                    );
                    oq2.Where(oq2.OrderDate.Between(Convert.ToDateTime("2004-01-01"), Convert.ToDateTime("2004-12-31")));

                    oq1.Union(oq2);
                    oq1.OrderBy(oq1.OrderID.Ascending);

                    //string lq = cq1.Parse();

                    Assert.IsTrue(coll.Load(oq1));
                    Assert.AreEqual(6, coll.Count);
                    Assert.AreEqual(3m, coll[0].GetColumn("MaxUnitPrice"));
                    break;
            }
        }