Hello,
on Visual Studio 2017, winform client (DA to custom server) i have a exception with linq “Take”.
I have installed last beta RemObjects Data Abstract for Visual Studio, Server Edition - 9.4.0.1359.
var result =
(from o in DataAdapter.GetTable<generic_order>()
where
…
join alerts in DataAdapter.GetTable<generic_alert>()
on o.id equals alerts.id_order into alertsorder
select new
ViewOrder
{
id = o.id,
status = o.status,
datetime_created = o.datetime_created,
…
alerts_count = alertsorder.Count(),
});
return result.Take(pagesize).ToList();
This query give this exception:
Si è verificata l’eccezione RemObjects.DataAbstract.DAException
HResult=0x80131500
Messaggio=An exception occurred on the server: Field “c0” not found
Origine= in RemObjects.DataAbstract.Server.Sql.QueryValidator.InternalValidateField(ValidatedFieldInfo fieldInfo)
in RemObjects.DataAbstract.Server.Sql.QueryValidator.VisitExpressionSelectItem(ExpressionSelectItem item)
in RemObjects.DataAbstract.Server.Sql.QueryExpressionVisitor.VisitSelectItem(SelectItem item)
in RemObjects.DataAbstract.Server.Sql.QueryValidator.VisitSelect(Select query)
in RemObjects.DataAbstract.Server.Sql.QueryExpressionVisitor.Visit(QueryExpression query)
in RemObjects.DataAbstract.Server.Sql.QueryExpressionVisitor.VisitOrderBy(OrderByQuery query)
in RemObjects.DataAbstract.Server.Sql.QueryExpressionVisitor.Visit(QueryExpression query)
in RemObjects.DataAbstract.Server.Sql.DASqlProcessor.GetData(String tableName, String sql, WhereExpression additionalWhere, DataParameter parameters, IAbstractConnection connection, ServiceSchema serviceSchema, DataStreamer streamer, Int32 maxRecords, Boolean allowPrivateAccess)
in RemObjects.DataAbstract.Server.DataAbstractService.GetDataViaDASql(String tableName, TableRequestInfoV6 requestInfo, DataStreamer streamer, Boolean allowPrivateAccess)
in RemObjects.DataAbstract.Server.DataAbstractService.InternalGetData(String tableNames, TableRequestInfo requestInfo, DataStreamer streamer, Boolean allowPrivateAccess)
in RemObjects.DataAbstract.Server.DataAbstractService.GetData(String tableNames, TableRequestInfo requestInfo)
in RemObjects.DataAbstract.Server.DataAbstractService_Invoker.Invoke_GetData(IROService __Instance, IMessage __Message, IServerChannelInfo __ServerChannelInfo, ResponseOptions& __oResponseOptions)
in RemObjects.SDK.Server.ServerChannel.InvokeMethod(IMessage message, IServerChannelInfo channel, ServiceInfo info)
in RemObjects.SDK.Server.ServerChannel.InvokeService(IMessage message, IServerChannelInfo channel)
Analisi dello stack:
in RemObjects.SDK.Message.ProcessException()
in RemObjects.SDK.BinMessage.InternalReadFromStream(Stream stream)
in RemObjects.SDK.Message.ReadFromStream(Stream stream)
in RemObjects.SDK.SuperHttpClientChannelWorker.DispatchMessage(Stream request, IMessage response)
in RemObjects.SDK.SuperHttpClientChannel.IntDispatch(Stream request, IMessage response)
in RemObjects.SDK.ClientChannel.Dispatch(IMessage message)
in RemObjects.SDK.DynamicRequest.InternalMakeRequest()
in RemObjects.SDK.DynamicRequest.MakeRequest()
in RemObjects.DataAbstract.Linq.LinqRemoteDataAdapter.FetchData(TableRequestInfo tableRequest, String tableNames, Action3 fillMethod) in RemObjects.DataAbstract.Linq.RemoteTable
1.Execute(Expression expression, DataParameter parameters)
in RemObjects.DataAbstract.Linq.RemoteTable1.Execute(Expression expression) in RemObjects.DataAbstract.Linq.RemoteTableQuery
1.GetEnumerator()
in System.Collections.Generic.List1..ctor(IEnumerable
1 collection)
in System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
Same query with no count works.
var result =
(from o in DataAdapter.GetTable<generic_order>()
where
…
join alerts in DataAdapter.GetTable<generic_alert>()
on o.id equals alerts.id_order into alertsorder
select new
ViewOrder
{
id = o.id,
status = o.status,
datetime_created = o.datetime_created,
…
//alerts_count = alertsorder.Count(),
});
return result.Take(pagesize).ToList();
Same query with no “Take” works.
var result =
(from o in DataAdapter.GetTable<generic_order>()
where
…
join alerts in DataAdapter.GetTable<generic_alert>()
on o.id equals alerts.id_order into alertsorder
select new
ViewOrder
{
id = o.id,
status = o.status,
datetime_created = o.datetime_created,
…
alerts_count = alertsorder.Count(),
});
return result.ToList();