From 7e03e2cd22ce42e6c82262fa0db28ce543eda9d8 Mon Sep 17 00:00:00 2001 From: Zaid Masud Date: Tue, 30 Aug 2011 19:17:44 +0100 Subject: [PATCH 1/2] Fixed problem where getting a Collection of an abstract type would throw an exception saying that Object must implement IConvertible --- NoRM/Linq/MongoQueryProvider.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/NoRM/Linq/MongoQueryProvider.cs b/NoRM/Linq/MongoQueryProvider.cs index d52264a4..7670e764 100644 --- a/NoRM/Linq/MongoQueryProvider.cs +++ b/NoRM/Linq/MongoQueryProvider.cs @@ -75,8 +75,7 @@ IQueryable IQueryProvider.CreateQuery(Expression expression) /// Resulting object S IQueryProvider.Execute(Expression expression) { - object result = ExecuteQuery(expression); - return (S)Convert.ChangeType(result, typeof(S)); + return (S)ExecuteQuery(expression); } /// From cf37e9083938f99fdcc136e2bdde0e5d2640775e Mon Sep 17 00:00:00 2001 From: Zaid Masud Date: Wed, 31 Aug 2011 10:53:39 +0100 Subject: [PATCH 2/2] Fixed problem where getting a Collection of an abstract type would throw an exception saying that Object must implement IConvertible --- NoRM/Linq/MongoQueryProvider.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NoRM/Linq/MongoQueryProvider.cs b/NoRM/Linq/MongoQueryProvider.cs index 7670e764..25378fea 100644 --- a/NoRM/Linq/MongoQueryProvider.cs +++ b/NoRM/Linq/MongoQueryProvider.cs @@ -75,6 +75,9 @@ IQueryable IQueryProvider.CreateQuery(Expression expression) /// Resulting object S IQueryProvider.Execute(Expression expression) { + object result = ExecuteQuery(expression); + if (result is IConvertible) + return (S)Convert.ChangeType(result, typeof(S)); return (S)ExecuteQuery(expression); }