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