I'm evaluating DbLinq for production use against Oracle (and possibly
SQL server) backend in a Microsoft environment (no Mono/Linux, yet).

If we will choise to invest on it we will dedicate some effort to the
project too.

Since our customer require reliability, we absolutely need to reach a
stable (yet quite rich) set of functionality to build application upon
during the next 2/3 years.

Since that, I've got a look to the code (from svn).
So I think DbLinq need:

- a better documentation about the overall architecture (absolutely
urgent, to allow developers to help)
- a catalogue of the stable features provided by the different
providers.

BTW, since to evaluate the use of DbLinq I need to know it a bit more,
I'd like to get involved too.


Actually I've noticed some bugs that I'm tring to fix (but with little
success, the appointed to me the need of better architecture and core
documentation)
As you could understand, to choice a tecnology upon which build
complex multi layer applications for the next 2 years, I need to
undestand also which support we could get from the community, and how
easily we could fix the bug we will encounter (obviously sending fix
back to the comunity too...)


Can you give me a more general overview?


Giacomo Tesio


PS: actually I'm working on
BUG 1:

             var res = from product in db.Products
                       join detail in db.OrderDetails on
product.ProductID equals detail.ProductID
                       join order in db.Orders on detail.OrderID
equals order.OrderID
                       select product;

Exception thrown:
System.Reflection.TargetInvocationException was unhandled
  Message="Exception has been thrown by the target of an invocation."
  Source="mscorlib"
  StackTrace:
       at System.RuntimeMethodHandle._InvokeMethodFast(Object target,
Object[] arguments, SignatureStruct& sig, MethodAttributes
methodAttributes, RuntimeTypeHandle typeOwner)
       at System.RuntimeMethodHandle.InvokeMethodFast(Object target,
Object[] arguments, Signature sig, MethodAttributes methodAttributes,
RuntimeTypeHandle typeOwner)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj,
BindingFlags invokeAttr, Binder binder, Object[] parameters,
CultureInfo culture, Boolean skipVisibilityChecks)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj,
BindingFlags invokeAttr, Binder binder, Object[] parameters,
CultureInfo culture)
       at System.Reflection.RuntimePropertyInfo.SetValue(Object obj,
Object value, BindingFlags invokeAttr, Binder binder, Object[] index,
CultureInfo culture)
       at System.Reflection.RuntimePropertyInfo.SetValue(Object obj,
Object value, Object[] index)
       at DbLinq.Data.Linq.DataContext.SetEntitySetsQueries(Object
entity) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\DataContext.cs:line 389
       at DbLinq.Data.Linq.DataContext._GetOrRegisterEntity(Object
entity) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\DataContext.cs:line 319
       at DbLinq.Data.Linq.DataContext.Register(Object entity, Type
asType) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\DataContext.cs:line 496
       at
DbLinq.Data.Linq.Sugar.Implementation.QueryRunner.<Select>d__0`1.MoveNext
() in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar
\Implementation\QueryRunner.cs:line 137
       at System.Collections.Generic.List`1..ctor(IEnumerable`1
collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at DbLinq.Mssql.Example.Program.Main(String[] args) in C:
\Projects\Labs\Linq\DbLinq\examples\DbLinq.Mssql.Example
\Program.cs:line 51
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String
[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile,
Evidence assemblySecurity, String[] args)
       at
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object
state)
       at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.NullReferenceException
       Message="Object reference not set to an instance of an object."
       Source="DbLinq.Mssql.Example"
       StackTrace:
            at nwind.Product.set_OrderDetails(EntitySet`1 value) in C:
\Projects\Labs\Linq\DbLinq\examples\DbLinq.Mssql.Example\nwind
\Northwind.cs:line 2492

BUG 2 (adding any where)

             var res = from product in db.Products
                       join detail in db.OrderDetails on
product.ProductID equals detail.ProductID
                       join order in db.Orders on detail.OrderID
equals order.OrderID
                       where order.CustomerID == "ID123"
                       select product;

Exception thrown:
System.NullReferenceException was unhandled
  Message="Object reference not set to an instance of an object."
  Source="System.Core"
  StackTrace:
       at System.Linq.Expressions.Expression.AreReferenceAssignable
(Type dest, Type src)
       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
(IList`1 operands) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\Sugar\ExpressionMutator\Implementation\NewExpressionMutator.cs:line
54
       at
DbLinq.Data.Linq.Sugar.ExpressionMutator.ExpressionMutatorExtensions.ChangeOperands
[T](T expression, IList`1 operands, Boolean checkForChanges) in C:
\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\ExpressionMutator
\ExpressionMutatorExtensions.cs:line 79
       at
DbLinq.Data.Linq.Sugar.ExpressionMutator.ExpressionMutatorExtensions.ChangeOperands
[T](T expression, IList`1 operands) in C:\Projects\Labs\Linq\DbLinq\src
\DbLinq\Data\Linq\Sugar\ExpressionMutator
\ExpressionMutatorExtensions.cs:line 116
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeOperator
(Expression expression, BuilderContext builderContext) in C:\Projects
\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation
\ExpressionDispatcher.Analyzer.cs:line 838
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeNewOperator
(Expression expression, BuilderContext builderContext) in C:\Projects
\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation
\ExpressionDispatcher.Analyzer.cs:line 857
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze
(Expression expression, IList`1 parameters, BuilderContext
builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 126
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze
(Expression expression, BuilderContext builderContext) in C:\Projects
\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation
\ExpressionDispatcher.Analyzer.cs:line 72
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeLambda
(Expression expression, IList`1 parameters, BuilderContext
builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 518
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze
(Expression expression, IList`1 parameters, BuilderContext
builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 82
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeQuote
(Expression piece, IList`1 parameters, BuilderContext builderContext)
in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar
\Implementation\ExpressionDispatcher.Analyzer.cs:line 811
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze
(Expression expression, IList`1 parameters, BuilderContext
builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 86
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeJoin
(IList`1 parameters, TableJoinType joinType, BuilderContext
builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 991
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeJoin
(IList`1 parameters, BuilderContext builderContext) in C:\Projects\Labs
\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation
\ExpressionDispatcher.Analyzer.cs:line 940
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeCall
(MethodInfo method, IList`1 parameters, BuilderContext builderContext)
in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar
\Implementation\ExpressionDispatcher.Analyzer.cs:line 159
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeCall
(MethodCallExpression expression, IList`1 parameters, BuilderContext
builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 142
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze
(Expression expression, IList`1 parameters, BuilderContext
builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 80
       at
DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze
(Expression expression, Expression parameter, BuilderContext
builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq
\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 67
       at
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildExpressionQuery
(ExpressionChain expressions, Expression tableExpression,
BuilderContext builderContext) in C:\Projects\Labs\Linq\DbLinq\src
\DbLinq\Data\Linq\Sugar\Implementation\QueryBuilder.cs:line 225
       at
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildExpressionQuery
(ExpressionChain expressions, BuilderContext builderContext) in C:
\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation
\QueryBuilder.cs:line 193
       at
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildExpressionQuery
(ExpressionChain expressions, QueryContext queryContext) in C:\Projects
\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation
\QueryBuilder.cs:line 87
       at
DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.GetSelectQuery
(ExpressionChain expressions, QueryContext queryContext) in C:\Projects
\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation
\QueryBuilder.cs:line 391
       at DbLinq.Data.Linq.Implementation.QueryProvider`1.GetQuery
(Expression expression) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data
\Linq\Implementation\QueryProvider.cs:line 100
       at DbLinq.Data.Linq.Implementation.QueryProvider`1.GetEnumerator
() in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Implementation
\QueryProvider.cs:line 122
       at System.Collections.Generic.List`1..ctor(IEnumerable`1
collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at DbLinq.Mssql.Example.Program.Main(String[] args) in C:
\Projects\Labs\Linq\DbLinq\examples\DbLinq.Mssql.Example
\Program.cs:line 52
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String
[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile,
Evidence assemblySecurity, String[] args)
       at
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object
state)
       at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to