diff --git a/MongoDB-CSharp.sln b/MongoDB-CSharp.sln index 007cc71d..51f9e227 100644 --- a/MongoDB-CSharp.sln +++ b/MongoDB-CSharp.sln @@ -19,6 +19,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MongoDB.Tests", "source\Mon EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Benchmark", "tools\Benchmark\Benchmark.csproj", "{5ACD68A0-0F2E-452A-90E3-3D1CB82C055B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MongoDB.DataContext", "source\MongoDB.DataContext\MongoDB.DataContext.csproj", "{5E413F58-FA04-4C9A-96B9-12AD43731C24}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -53,6 +55,10 @@ Global {5ACD68A0-0F2E-452A-90E3-3D1CB82C055B}.Debug|Any CPU.Build.0 = Debug|Any CPU {5ACD68A0-0F2E-452A-90E3-3D1CB82C055B}.Release|Any CPU.ActiveCfg = Release|Any CPU {5ACD68A0-0F2E-452A-90E3-3D1CB82C055B}.Release|Any CPU.Build.0 = Release|Any CPU + {5E413F58-FA04-4C9A-96B9-12AD43731C24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E413F58-FA04-4C9A-96B9-12AD43731C24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E413F58-FA04-4C9A-96B9-12AD43731C24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E413F58-FA04-4C9A-96B9-12AD43731C24}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/source/MongoDB.Tests/IntegrationTests/Linq/LinqDomain.cs b/source/MongoDB.Tests/IntegrationTests/Linq/LinqDomain.cs index 639a760f..1c57ecb1 100644 --- a/source/MongoDB.Tests/IntegrationTests/Linq/LinqDomain.cs +++ b/source/MongoDB.Tests/IntegrationTests/Linq/LinqDomain.cs @@ -1,31 +1,33 @@ using System.Collections.Generic; +using MongoDB.Attributes; + namespace MongoDB.IntegrationTests.Linq { public class Person { - //[MongoAlias("fn")] + [MongoAlias("fn")] public string FirstName { get; set; } - //[MongoAlias("ln")] + [MongoAlias("ln")] public string LastName { get; set; } - //[MongoAlias("age")] + [MongoAlias("age")] public int Age { get; set; } - //[MongoAlias("add")] + [MongoAlias("add")] public Address PrimaryAddress { get; set; } - //[MongoAlias("otherAdds")] + [MongoAlias("otherAdds")] public List
Addresses { get; set; } - //[MongoAlias("emps")] + [MongoAlias("emps")] public int[] EmployerIds { get; set; } } public class Address { - //[MongoAlias("city")] + [MongoAlias("city")] public string City { get; set; } public bool IsInternational { get; set; } diff --git a/source/MongoDB.Tests/IntegrationTests/Linq/MongoQueryTests.cs b/source/MongoDB.Tests/IntegrationTests/Linq/MongoQueryTests.cs index 76f2b3c5..0b9417d2 100644 --- a/source/MongoDB.Tests/IntegrationTests/Linq/MongoQueryTests.cs +++ b/source/MongoDB.Tests/IntegrationTests/Linq/MongoQueryTests.cs @@ -159,8 +159,8 @@ public void Count_without_predicate() public void DocumentQuery() { var people = (from p in DocumentCollection.Linq() - where p.Key("Age") > 21 - select (string)p["FirstName"]).ToList(); + where p.Key("age") > 21 + select (string)p["fn"]).ToList(); Assert.AreEqual(2, people.Count); } diff --git a/source/MongoDB/Linq/MongoQueryProvider.cs b/source/MongoDB/Linq/MongoQueryProvider.cs index 521c2b2e..fdd5f033 100644 --- a/source/MongoDB/Linq/MongoQueryProvider.cs +++ b/source/MongoDB/Linq/MongoQueryProvider.cs @@ -259,7 +259,6 @@ private object ExecuteMapReduce(MongoQueryObject queryObject) var mapReduce = collection.GetType().GetMethod("MapReduce").Invoke(collection, null); var mapReduceCommand = (MapReduceCommand)mapReduce.GetType().GetProperty("Command").GetValue(mapReduce, null); - mapReduceCommand.Map = new Code(queryObject.MapFunction); mapReduceCommand.Reduce = new Code(queryObject.ReduceFunction); mapReduceCommand.Finalize = new Code(queryObject.FinalizerFunction); @@ -273,11 +272,8 @@ private object ExecuteMapReduce(MongoQueryObject queryObject) if (queryObject.NumberToSkip != 0) throw new InvalidQueryException("MapReduce queries do no support Skips."); - //mapReduce.GetType().GetProperty() - var executor = GetExecutor(typeof(Document), queryObject.Projector, queryObject.Aggregator, true); - return null; - //executor.Compile().DynamicInvoke(mapReduce.Documents); + return executor.Compile().DynamicInvoke(mapReduce.GetType().GetProperty("Documents").GetValue(mapReduce, null)); } private static LambdaExpression GetExecutor(Type documentType, LambdaExpression projector, LambdaExpression aggregator, bool boxReturn) diff --git a/source/MongoDB/MapReduce.cs b/source/MongoDB/MapReduce.cs index d5524778..d9ac3849 100644 --- a/source/MongoDB/MapReduce.cs +++ b/source/MongoDB/MapReduce.cs @@ -47,7 +47,7 @@ public MapReduce(IMongoDatabase database, string name) /// Gets the documents. /// ///