[CSHARP-538] OfType() followed by Count() in a LINQ query fails Created: 24/Jul/12  Updated: 20/Mar/14  Resolved: 14/Aug/12

Status: Closed
Project: C# Driver
Component/s: None
Affects Version/s: 1.5
Fix Version/s: 1.6

Type: Bug Priority: Major - P3
Reporter: Robert Stam Assignee: Craig Wilson
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

To reproduce use these classes:

public class B
{
    public ObjectId Id;
}
 
public class C : B
{
}

and this test code:

var server = MongoServer.Create("mongodb://localhost/?safe=true");
var database = server.GetDatabase("test");
var collection = database.GetCollection<B>("test");
 
collection.Drop();
collection.Insert(new B());
collection.Insert(new C());
collection.Insert(new C());
 
Console.WriteLine(collection.AsQueryable<B>().OfType<C>().Count()); // should write 2

It throws this exception:

System.InvalidCastException: Unable to cast object of type 'MongoDB.Driver.Linq.Projector`2[ConsoleApplication1.B,ConsoleApplication1.C]' to type 'MongoDB.Drive
r.MongoCursor'.
   at MongoDB.Driver.Linq.SelectQuery.<TranslateCount>b__2(IEnumerable source) in C:\work\rstam\mongo-csharp-driver\Driver\Linq\Translators\SelectQuery.cs:line 416
   at MongoDB.Driver.Linq.SelectQuery.Execute() in C:\work\rstam\mongo-csharp-driver\Driver\Linq\Translators\SelectQuery.cs:line 210
   at MongoDB.Driver.Linq.MongoQueryProvider.Execute(Expression expression) in C:\work\rstam\mongo-csharp-driver\Driver\Linq\MongoQueryProvider.cs:line 155
   at MongoDB.Driver.Linq.MongoQueryProvider.Execute[TResult](Expression expression) in C:\work\rstam\mongo-csharp-driver\Driver\Linq\MongoQueryProvider.cs:line 131
   at System.Linq.Queryable.Count[TSource](IQueryable`1 source)
   at ConsoleApplication1.Program.Main(String[] _args) in C:\Users\Robert Stam\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs:line 47



 Comments   
Comment by Robert Stam [ 16/Aug/12 ]

Pushed to master.

Comment by auto [ 16/Aug/12 ]

Author:

{u'date': u'2012-08-14T11:40:45-07:00', u'email': u'craiggwilson@gmail.com', u'name': u'Craig Wilson'}

Message: CSHARP-538: fixed bug related to element selection after projections.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/2a050c5394ea424577707fbd3177f094d473e283

Comment by Craig Wilson [ 14/Aug/12 ]

Awaiting code review.

Generated at Wed Feb 07 21:37:08 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.