jonpryor / dblinq2007

Automatically exported from code.google.com/p/dblinq2007
0 stars 0 forks source link

Anonymous types aren't supported by group...into expressions. #262

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Reported at: 

http://groups.google.com/group/dblinq/browse_thread/thread/66b9bc9f1d883caf

Compile and run the following fragment against Northwind:

        [Test]
        public void TESTME()
        {
            DateTime fromDate = new DateTime (1900, 1,1);
            DateTime toDate   = new DateTime (2100, 1, 1);
            Northwind db = CreateDB();
            var results = from o in db.Orders
                group o by new {o.ShipName, o.Freight, o.OrderDate} into myGroup
                where myGroup.Key.OrderDate >= fromDate && myGroup.Key.OrderDate < toDate
                orderby myGroup.Key.ShipName
                select new { myGroup.Key.ShipName, myGroup.Key.Freight};
            foreach (var r in results) {
                Console.WriteLine ("# ShipName={0}; Freight={1}", r.ShipName, r.Freight);
            }
        }

.NET output:

#AT(000000000713) BaseSetUp()
SELECT [t1].[ShipName], [t1].[Freight]
FROM (
    SELECT [t0].[ShipName], [t0].[Freight], [t0].[OrderDate]
    FROM [dbo].[Orders] AS [t0]
    GROUP BY [t0].[ShipName], [t0].[Freight], [t0].[OrderDate]
    ) AS [t1]
WHERE ([t1].[OrderDate] >= @p0) AND ([t1].[OrderDate] < @p1)
ORDER BY [t1].[ShipName]
-- @p0: Input DateTime (Size = 0; Prec = 0; Scale = 0) [1/1/1900 12:00:00 AM]
-- @p1: Input DateTime (Size = 0; Prec = 0; Scale = 0) [1/1/2100 12:00:00 AM]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 
3.5.30729.4926

# ShipName=Alfreds Futterkiste; Freight=29.4600
# ShipName=Alfred's Futterkiste; Freight=1.2100
# ShipName=Alfred's Futterkiste; Freight=23.9400
# ShipName=Alfred's Futterkiste; Freight=40.4200
# output omitted because there's too much...

Actual output:

Test_NUnit_MsSql.ReadTest_GroupBy.TESTME:
System.ArgumentException : New
at DbLinq.Vendor.Implementation.SqlProvider.GetLiteral(ExpressionType 
operationType, IList`1 p) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Vendor\Implementation\SqlProvider
.cs:line 314
at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildExpression(Expression 
expression, QueryContext queryContext) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\Sq
lBuilder.cs:line 244
at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildExpression(Expression 
expression, QueryContext queryContext) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\Sq
lBuilder.cs:line 168
at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildExpression(Expression 
expression, QueryContext queryContext) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\Sq
lBuilder.cs:line 168
at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildExpression(Expression 
expression, QueryContext queryContext) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\Sq
lBuilder.cs:line 168
at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildWhere(IList`1 tables, 
IList`1 wheres, QueryContext queryContext) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\Sq
lBuilder.cs:line 395
at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.Build(SelectExpression 
selectExpression, QueryContext queryContext) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\Sq
lBuilder.cs:line 127
at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildSelect(ExpressionQuery 
expressionQuery, QueryContext queryContext) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\Sq
lBuilder.cs:line 59
at 
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildSqlQuery(ExpressionQuery
 expressionQuery, QueryContext queryContext) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\Qu
eryBuilder.cs:line 337
at 
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.GetSelectQuery(ExpressionChai
n expressions, QueryContext queryContext) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\Qu
eryBuilder.cs:line 397
at DbLinq.Data.Linq.Implementation.QueryProvider`1.GetQuery(Expression 
expression) in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Implementation\QueryPro
vider.cs:line 165
at DbLinq.Data.Linq.Implementation.QueryProvider`1.GetEnumerator() in 
z:\Development\mono-HEAD\dblinq2007\src\DbLinq\Data\Linq\Implementation\QueryPro
vider.cs:line 215
at Test_NUnit_MsSql.ReadTest_GroupBy.TESTME()

Original issue reported on code.google.com by jonmpr...@gmail.com on 22 Jun 2010 at 7:48