Yep, here you go: at DbLinq.Vendor.Implementation.SqlProvider.GetLiteral(ExpressionType operationType, IList`1 p) at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildExpression(Expression expression, QueryContext queryContext) at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildExpression(Expression expression, QueryContext queryContext) at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildExpression(Expression expression, QueryContext queryContext) at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildWhere(IList`1 tables, IList`1 wheres, QueryContext queryContext) at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.Build(SelectExpression selectExpression, QueryContext queryContext) at DbLinq.Data.Linq.Sugar.Implementation.SqlBuilder.BuildSelect(ExpressionQuery expressionQuery, QueryContext queryContext) at DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildSqlQuery(ExpressionQuery expressionQuery, QueryContext queryContext) at DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.GetSelectQuery(ExpressionChain expressions, QueryContext queryContext) at DbLinq.Data.Linq.Implementation.QueryProvider`1.GetQuery(Expression expression) at DbLinq.Data.Linq.Implementation.QueryProvider`1.Execute[TResult] (Expression expression) at System.Linq.Queryable.Single[TSource](IQueryable`1 source) at Tester.Program.DataAccess() in C:\...\Program.cs:line 25 at Tester.Program.Main(String[] args) in C:\...\Program.cs:line 15 at System.AppDomain._nExecuteAssembly(RuntimeAssembly 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, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()
I'm not sure what you mean by "with the exception that you can't use 'new' to create new Entity instances" This is sort of a mission critical component for my current project. And although I can move specific queries into my repository classes as a work-around to this issue, I'd rather just return an IQueryable from my repository classes instead. This is critical enough that I might be willing to pay for a definitive fix. Can you contact me off list? Thanks. -Abe On Jun 22, 2:25 pm, Jonathan Pryor <[email protected]> wrote: > On Wed, 2010-05-19 at 20:54 -0700, xanadont wrote: > > Is it possible to project types generated by DbLinq to other types? > > For example: > > > var mine = from i in Context.Items > > select new MyItem > > { > > Id = i.ID, > > Value = i.Value > > }; > > > I'm getting exceptions where the Message is simply "New". Is there a > > work around for this? > > Can you provide a full stack trace? This should work, with the exception > that you can't use 'new' to create new Entity instances; see > ExpressionDispatercher.Analyzer.cs:AnalyzeSelect(): > > protected virtual Expression AnalyzeSelect(IList<Expression> > parameters, BuilderContext builderContext) > { > // just call back the underlying lambda (or quote, whatever) > Expression ex = Analyze(parameters[1], parameters[0], > builderContext); > > > //http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thre... > if (ex.NodeType == ExpressionType.MemberInit && > > builderContext.QueryContext.DataContext.Mapping.GetMetaType(ex.Type) != null) > throw new NotSupportedException( > string.Format("Explicit construction of entity type '{0}' > in query is not allowed.", > ex.Type.FullName)); > TableExpression tableExpression = parameters[0] as > TableExpression; > if (tableExpression != null && > builderContext.CurrentSelect.Tables.Count == 0) > RegisterTable(tableExpression, builderContext); > return ex; > } > > - Jon -- 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.
