Here is a work-around fix for the issue: I've also come across this same problem with DbLinq and very slow MySQL queries. You'll see a list of ArgumentExceptions thrown before the query is executed and it can take up to 8-10 seconds to execute. Here is a potential fix for it:
1. Download the latest SVN code for DbLinq at http://code.google.com/p/dblinq2007/source/checkout 2. Open the following file for editing in Visual Studio 2008 DBLinq \src \DbLinq\Data\Linq\Sugar\Implementation\ExpressionOptimizer.cs 3. On line 78, the problem manifests itself when attempting to evaluate the lambda expression. Change the function AnalyzeConstant() as follows: protected virtual Expression AnalyzeConstant(Expression expression, BuilderContext builderContext) { // we try to find a non-constant operand, and if we do, we won't change this expression foreach (var operand in expression.GetOperands()) { if (!(operand is ConstantExpression)) return expression; } // now, we just simply return a constant with new value // ***** COMMENTED OUT CODE ***** /*try { var optimizedExpression = Expression.Constant (expression.Evaluate()); // sometimes, optimizing an expression changes its type, and we just can't allow this. if (optimizedExpression.Type == expression.Type) return optimizedExpression; } // if we fail to evaluate the expression, then just return it catch (ArgumentException) { }*/ // ***** END COMMENTED OUT CODE *****// return expression; } 4. Re-compile the DbLinq project to get the new DbLinq.dll and reference it in your projects. The ArgumentExceptions should no longer appear and queries are executed instantly. Hope that helps. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DbLinq" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/dblinq?hl=en -~----------~----~----~----~------~----~------~--~---
