I have a document in a collection called Results.
A Result class looks like:
public class Result
{
public virtual int ResultId { get; set; }
public virtual DateTime ResultDate { get; set; }
public virtual string ResultVenue { get; set; }
public virtual string DisciplineCode { get; set; }
public virtual string DisciplineName { get; set; }
public virtual int CompetitorId { get; set; }
public virtual string CompetitorLastName { get; set; }
public virtual string CompetitorFirstName { get; set; }
public virtual string CompetitorTeamName { get; set; }
}
In my collection, there's around 1million documents.
I'm trying to retrieve a list of all the distinct DisciplineCode & DisciplineNames in the Result collection
My query looks like:
var disciplines = _db.GetCollection<Result>.AsQueryable()
.Select(d => new { d.DisciplineName, d.DisciplineCode })
.Distinct()
.ToList();
But, I get the error:
Unable to determine the serialization information for the expression: new __AnonymousType<String, String>(d.DisciplineName, d.DisciplineCode).
Annoying stack trace below:
Eventually, hoping to use a Discipline class instead of anonymous type - but that produced the same error.
Any suggestions??
[NotSupportedException: Unable to determine the serialization information for the expression: new __AnonymousType<String, String>(d.DisciplineName, d.DisciplineCode).]
MongoDB.Driver.Linq.Utils.BsonSerializationInfoFinder.GetSerializationInfo(Expression node, Dictionary`2 serializationInfoCache) +182
MongoDB.Driver.Linq.Utils.BsonSerializationInfoHelper.GetSerializationInfo(Expression node) +40
MongoDB.Driver.Linq.SelectQuery.ExecuteDistinct(IMongoQuery query) +283
MongoDB.Driver.Linq.SelectQuery.Execute() +235
MongoDB.Driver.Linq.MongoQueryProvider.Execute(Expression expression) +114
MongoDB.Driver.Linq.MongoQueryable`1.GetEnumerator() +42
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +315
System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
IAAFProto.Web.Controllers.RecordsController.Index() in C:\Users\alex brown\Dropbox\Clients\Haymarket\IAAF\source\trunk\IAAFProto\Controllers\RecordsController.cs:19
lambda_method(Closure , ControllerBase , Object[] ) +96
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +51
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +409
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +52
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +127
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +436
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +61
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +305
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +830
System.Web.Mvc.Controller.ExecuteCore() +136
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +232
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +39
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +68
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +44
System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +42
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +141
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +54
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +61
System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +31
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +56
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +110
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8970061
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184