using System.Collections.Generic; using System.Linq; using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; using MongoDB.Driver; using MongoDB.Driver.GeoJsonObjectModel; using MongoDB.Driver.Linq; namespace MongoSpatial { internal class Program { private static void Main(string[] args) { new Runner().Run(); } } public class Runner { private IMongoCollection objectsCollection; public void Run() { CreateDataInDb(); Execute(); } private void CreateDataInDb() { MongoClient client = new MongoClient("mongodb://localhost"); var database = client.GetDatabase("myTestDb"); objectsCollection = database.GetCollection("myTestCollection"); objectsCollection.DeleteManyAsync(new BsonDocument()); objectsCollection.InsertManyAsync(TestClass.Create()); } private void Execute() { var items = objectsCollection.AsQueryable().Where(o => o.Id.Length > 100).ToList(); var count = objectsCollection.AsQueryable().Where(o => o.Id.Length > 100).Count(); // exception thrown here } } public class TestClass { [BsonId] public string Id { get; set; } public string Name { get; set; } public GeoJsonMultiPolygon Coord { get; set; } public static List Create() { return new List { new TestClass { Id = "1", Name = "Aaa", Coord = GeoJson.MultiPolygon( GeoJson.PolygonCoordinates(new GeoJson2DGeographicCoordinates(55.93928352205148, 54.738099824740175), new GeoJson2DGeographicCoordinates(55.93550697175852, 54.72719706618662), new GeoJson2DGeographicCoordinates(55.95232978669991, 54.725214431247736), new GeoJson2DGeographicCoordinates(55.957479628008514, 54.73492841574267), new GeoJson2DGeographicCoordinates(55.93928352205148, 54.738099824740175)) ) }, new TestClass { Id = "2", Name = "Bbb", Coord = GeoJson.MultiPolygon( GeoJson.PolygonCoordinates( new GeoJson2DGeographicCoordinates(55.981855543535865, 54.747216242768275), new GeoJson2DGeographicCoordinates(55.97739234773508, 54.746027261127296), new GeoJson2DGeographicCoordinates(55.97430244294992, 54.74008182929458), new GeoJson2DGeographicCoordinates(55.98528877107493, 54.739289039109735), new GeoJson2DGeographicCoordinates(55.99146858064523, 54.746027261127296), new GeoJson2DGeographicCoordinates(55.981855543535865, 54.747216242768275)) ) }, new TestClass { Id = "3", Name = "Ccc", Coord = GeoJson.MultiPolygon( GeoJson.PolygonCoordinates( new GeoJson2DGeographicCoordinates(56.04193702546944, 54.7620755681412), new GeoJson2DGeographicCoordinates(56.03610053865303, 54.76128320846155), new GeoJson2DGeographicCoordinates(56.035757215899125, 54.76801777131945), new GeoJson2DGeographicCoordinates(56.038847120684274, 54.769998311829426), new GeoJson2DGeographicCoordinates(56.04502693025459, 54.76781971193682), new GeoJson2DGeographicCoordinates(56.04193702546944, 54.7620755681412)) ) } }; } } }