Ошибка при удалении
От: Holms США  
Дата: 12.05.11 22:33
Оценка:
Падает с ошибкой при таком запросе

IList<int> toDeleteSymbols = currentSymbols.Where(_ => !symbolIds.Contains(_)).ToList();

// delete not needed
ctx.portfolio_dtl
    .Where(_ => _.portfolio_id == watchList.Id && toDeleteSymbols.Any(ds => ds == _.code))
    .Delete();


ошибка
{"Unable to cast object of type 'System.Linq.Expressions.FieldExpression' to type 'System.Linq.Expressions.MethodCallExpression'."}


Понимаю что скорее всего это уже не поправят, учтите хотябы в новой версии.

Stack Trace

   at BLToolkit.Data.Linq.ExpressionParserOld`1.ParseSequenceInternal(Expression info)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.ParseSequence(Expression info)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.ParseAnyCondition(SetType setType, Expression expr, LambdaInfo lambda, Expression inExpr)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.<>c__DisplayClass1a1.<>c__DisplayClass1a8.<>c__DisplayClass1ac.<ParseConditionSubQuery>b__199()
   at BLToolkit.Data.Linq.ExpressionParserOld`1.ParseConditionSubQuery(Expression expr, QuerySource[] queries)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.ParseSearchCondition(ICollection`1 conditions, LambdaInfo lambda, Expression expression, QuerySource[] queries)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.ParseWhere(LambdaInfo l, QuerySource select)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.<>c__DisplayClassa5.<>c__DisplayClassa9.<ParseSequenceInternal>b__2a(Expression seq, LambdaInfo l)
   at BLToolkit.Linq.ExpressionHelper.IsLambda(Expression expr, Func`2[] parameters, Func`2 body, Func`2 func)
   at BLToolkit.Linq.ExpressionHelper.IsMethod(MethodCallExpression expr, Type declaringType, String methodName, Func`2[] args, Func`2 func)
   at BLToolkit.Linq.ExpressionHelper.IsQueryableMethod(MethodCallExpression pi, Func`3 lambda)
   at BLToolkit.Linq.ExpressionHelper.Match[T](T expr, Func`2[] matches)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.ParseSequenceInternal(Expression info)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.ParseSequence(Expression info)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.<>c__DisplayClassa5.<>c__DisplayClassa7.<ParseSequenceInternal>b__28(Expression seq)
   at BLToolkit.Linq.ExpressionHelper.IsMethod(MethodCallExpression expr, Type declaringType, String methodName, Func`2[] args, Func`2 func)
   at BLToolkit.Linq.ExpressionHelper.IsQueryableMethod(MethodCallExpression pi, Func`2 func)
   at BLToolkit.Linq.ExpressionHelper.Match[T](T expr, Func`2[] matches)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.ParseSequenceInternal(Expression info)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.<Parse>b__c(Expression pi)
   at BLToolkit.Linq.ExpressionHelper.Match[T](T expr, Func`2[] matches)
   at BLToolkit.Data.Linq.ExpressionParserOld`1.Parse(String contextID, MappingSchema mappingSchema, Func`1 createSqlProvider, Expression expression, ParameterExpression[] compiledParameters)
   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.System.Linq.IQueryProvider.Execute[TResult](Expression expression)
   at BLToolkit.Data.Linq.LinqExtensions.Delete[T](IQueryable`1 source)
   at EJFQ.DataServiceProviders.MySql.MySql_UserDataServiceProvider.AddUpdateWatchList(WatchList watchList, IList`1 symbolIds) in \EJFQ.DataServiceProviders\MySql\MySql_UserDataServiceProvider.cs:line 82
... << RSDN@Home 1.2.0 alpha 5 (M4) rev. 1510>>
The life is relative and reversible.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.