New issue 191 by aferr...@onit.it: Exception on mapping collection
http://code.google.com/p/dblinq2007/issues/detail?id=191
What steps will reproduce the problem?
1.northwind on oracle database
2.dblinq 0.19
3.
OracleConnection conn = new OracleConnection(connStr);
conn.Open();
northwind2.NorthWind ct = new northwind2.NorthWind( conn);
ct.DeferredLoadingEnabled = false;
ct.ObjectTrackingEnabled=false;
var query = from o in ct.Orders
select new MyOrder() {
ORDERID = o.OrderID,
Detail = from a in o.OrderDetails select new
MyOrderDetail() {
PRODUCTID=a.ProductID,
}
}
;
var result = query.ToList();
What is the expected output? What do you see instead?
detail collection have to be mapped on my class MyOrderDetail
and loaded into MyOrder.Detail.
Instead throws exception in binding Expression.
What version of the product are you using? On what operating system?
0.19 release, windows xp, oracle 10g
Please provide any additional information below.
--
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
Comment #1 on issue 191 by jonmpryor: Exception on mapping collection
http://code.google.com/p/dblinq2007/issues/detail?id=191
Also reproducible against SQL Server.
For test code:
[Test]
public void Issue191()
{
var db = CreateDB();
var q = from o in db.Orders
select new
{
OrderID = o.OrderID,
Detail = from a in o.OrderDetails
select new
{
ProductID = a.ProductID,
},
};
var r = q.ToList();
}
exception is:
Test_NUnit_MsSql.ReadTest.Issue191:
System.ArgumentException : Argument
type '<>f__AnonymousType3e`1[System.Int32]' does
not match the corresponding member type
'System.Collections.Generic.IEnumerable`1[<>f__AnonymousType3e`1[System.Int32]]'
at System.Linq.Expressions.Expression.ValidateNewArgs(ConstructorInfo
constructor,
ReadOnlyCollection`1& arguments, ReadOnlyCollection`1 members)
at System.Linq.Expressions.Expression.New(ConstructorInfo constructor,
IEnumerable`1
arguments, IEnumerable`1 members)
at
DbLinq.Data.Linq.Sugar.ExpressionMutator.Implementation.NewExpressionMutator.Mutate(I
List`1 operands) in Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\ExpressionMutator\Implementation\NewExpres
sionMutator.cs:line 41
at
DbLinq.Data.Linq.Sugar.ExpressionMutator.ExpressionMutatorExtensions.ChangeOperands[T
](T expression, IList`1 operands, Boolean checkForChanges) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorExtensi
ons.cs:line 70
at
DbLinq.Data.Linq.Sugar.ExpressionMutator.ExpressionMutatorExtensions.ChangeOperands[T
](T expression, IList`1 operands) in Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorExtensi
ons.cs:line 107
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeOperator(Expression
expression, BuilderContext builderContext) in Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 1112
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeNewOperator(Express
ion expression, BuilderContext builderContext) in Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 1142
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze(Expression
expression, IList`1 parameters, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 155
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze(Expression
expression, BuilderContext builderContext) in Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 101
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeLambda(Expression
expression, IList`1 parameters, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 713
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze(Expression
expression, IList`1 parameters, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 111
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeQuote(Expression
piece, IList`1 parameters, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 1072
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze(Expression
expression, IList`1 parameters, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 115
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze(Expression
expression, Expression parameter, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 96
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeSelect(IList`1
parameters, BuilderContext builderContext) in Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 662
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeQueryableCall(Metho
dInfo method, IList`1 parameters, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 236
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeCall(MethodCallExpr
ession expression, IList`1 parameters, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 178
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze(Expression
expression, IList`1 parameters, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 109
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze(Expression
expression, Expression parameter, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 96
at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze(ExpressionChain
expressions, Expression parameter, BuilderContext builderContext) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyz
er.cs:line 73
at
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildExpressionQuery(ExpressionCha
in expressions, Expression tableExpression, BuilderContext builderContext)
in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\QueryBuilder.cs:line
203
at
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildExpressionQuery(ExpressionCha
in expressions, BuilderContext builderContext) in Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\QueryBuilder.cs:line
182
at
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildExpressionQuery(ExpressionCha
in expressions, QueryContext queryContext) in Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\QueryBuilder.cs:line
76
at
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.GetSelectQuery(ExpressionChain
expressions, QueryContext queryContext) in Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Sugar\Implementation\QueryBuilder.cs:line
393
at DbLinq.Data.Linq.Implementation.QueryProvider`1.GetQuery(Expression
expression) in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Implementation\QueryProvider.cs:line
165
at DbLinq.Data.Linq.Implementation.QueryProvider`1.GetEnumerator() in
Z:\Development\mono-
HEAD\dblinq2007\src\DbLinq\Data\Linq\Implementation\QueryProvider.cs:line
215
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Test_NUnit_MsSql.ReadTest.Issue191()
Hey, I fix this and another issues. You can download the source here:
http://code.google.com/p/dblinq2007/issues/detail?id=132#c2