contains

36 views
Skip to first unread message

Alex Karpov

unread,
Apr 3, 2012, 3:35:22 AM4/3/12
to Business Logic Toolkit for .NET
Goodday.
i'm using BlToolKit 4.1.4.0 & have same problem with linq. Have a
qwery:

var ret =
from a1 in context.GetTable<someTable>
where !(from calc in context.GetTable<someTable2>()
select new { calc.Some,
calc.Some2 })
.Contains(new { Some = a1.ID,
Some2 = a1.Some2 })
select new {a1.ID, a1.Some2};
var array = ret.ToArray();

Have a error: "The method or operation is not implemented."
" at
BLToolkit.Data.Linq.Builder.ExpressionContext.ConvertToSql(Expression
expression, Int32 level, ConvertFlags flags)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.ConvertObjectComparison(ExpressionType
nodeType, IBuildContext leftContext, Expression left, IBuildContext
rightContext, Expression right)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.ConvertCompare(IBuildContext
context, ExpressionType nodeType, Expression left, Expression right)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.ConvertPredicate(IBuildContext
context, Expression expression)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.BuildSearchCondition(IBuildContext
context, Expression expression, List`1 conditions)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.BuildWhere(IBuildContext
parent, IBuildContext sequence, LambdaExpression condition, Boolean
checkForSubQuery)
at
BLToolkit.Data.Linq.Builder.ContainsBuilder.ContainsContext.GetSubQuery(IBuildContext
context)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.SubQueryToSql(IBuildContext
context, MethodCallExpression expression)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.ConvertToSql(IBuildContext
context, Expression expression, Boolean unwrap)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.ConvertPredicate(IBuildContext
context, Expression expression)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.BuildSearchCondition(IBuildContext
context, Expression expression, List`1 conditions)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.BuildSearchCondition(IBuildContext
context, Expression expression, List`1 conditions)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.BuildWhere(IBuildContext
parent, IBuildContext sequence, LambdaExpression condition, Boolean
checkForSubQuery)
at
BLToolkit.Data.Linq.Builder.WhereBuilder.BuildMethodCall(ExpressionBuilder
builder, MethodCallExpression methodCall, BuildInfo buildInfo)
at
BLToolkit.Data.Linq.Builder.MethodCallBuilder.BuildSequence(ExpressionBuilder
builder, BuildInfo buildInfo)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo
buildInfo)
at
BLToolkit.Data.Linq.Builder.SelectBuilder.BuildMethodCall(ExpressionBuilder
builder, MethodCallExpression methodCall, BuildInfo buildInfo)
at
BLToolkit.Data.Linq.Builder.MethodCallBuilder.BuildSequence(ExpressionBuilder
builder, BuildInfo buildInfo)
at
BLToolkit.Data.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo
buildInfo)
at BLToolkit.Data.Linq.Builder.ExpressionBuilder.Build[T]()
at BLToolkit.Data.Linq.Query`1.GetQuery(IDataContextInfo
dataContextInfo, Expression expr)
at BLToolkit.Data.Linq.Table`1.GetQuery(Expression expression,
Boolean cache)
at BLToolkit.Data.Linq.Table`1.get_SqlText()
at BLToolkit.Data.Linq.ExpressionQuery`1.get_SqlText()"

But i wona see some logic on SQL:
SELECT [a1].[ID],
[a1].[Some2]
FROM [dbo].[someTable] AS [a1]
WHERE NOT (
EXISTS(
SELECT NULL AS [EMPTY]
FROM (
SELECT [calc].[Some] AS [Some], [calc].
[Some2] AS [Some2]
FROM [dbo].[someTable2] AS [calc]
) AS [calc]
WHERE [calc].[Some] = a1.ID and [calc].[Some2] =
a1.Some2
)
)

Some example you can see on http://www.sql.ru/forum/actualthread.aspx?tid=540848
, sorry for my bad english, "we are russian" (aka some film)
Reply all
Reply to author
Forward
0 new messages