Skip to content

Commit 69ae1ef

Browse files
committed
CSHARP-3973: Remove AsQueryable3.
1 parent 9e82a08 commit 69ae1ef

23 files changed

+99
-114
lines changed

src/MongoDB.Driver/Linq/Linq2Implementation/LinqProviderAdapterV2.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ internal override IMongoQueryable<TDocument> AsQueryable<TDocument>(
3333
IClientSessionHandle session,
3434
AggregateOptions options)
3535
{
36-
var queryProvider = new MongoQueryProviderImpl<TDocument>(collection, session, options);
37-
return new MongoQueryableImpl<TDocument, TDocument>(queryProvider);
36+
var provider = new MongoQueryProviderImpl<TDocument>(collection, session, options);
37+
return new MongoQueryableImpl<TDocument, TDocument>(provider);
3838
}
3939

4040
public override string ToString() => "V2";

src/MongoDB.Driver/Linq/Linq3Implementation/IMongoCollectionExtensions.cs

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/MongoDB.Driver/Linq/Linq3Implementation/LinqProviderAdapterV3.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ internal override IMongoQueryable<TDocument> AsQueryable<TDocument>(
3535
IClientSessionHandle session,
3636
AggregateOptions options)
3737
{
38-
return collection.AsQueryable3(session, options);
38+
var provider = new MongoQueryProvider<TDocument>(collection, session, options);
39+
return new MongoQuery<TDocument, TDocument>(provider);
3940
}
4041

4142
public override string ToString() => "V3";

src/MongoDB.Driver/Linq/Linq3Implementation/Misc/ConvertHelper.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,21 @@ public static Expression RemoveConvertToEnumUnderlyingType(Expression expression
108108
return expression;
109109
}
110110

111+
public static Expression RemoveConvertToInterface(Expression expression)
112+
{
113+
if (expression.NodeType == ExpressionType.Convert)
114+
{
115+
var convertExpression = (UnaryExpression)expression;
116+
var targetType = convertExpression.Type;
117+
if (targetType.IsInterface)
118+
{
119+
return convertExpression.Operand;
120+
}
121+
}
122+
123+
return expression;
124+
}
125+
111126
public static Expression RemoveWideningConvert(Expression expression)
112127
{
113128
if (expression.NodeType == ExpressionType.Convert)

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/ToFilterFieldTranslators/MemberExpressionToFilterFieldTranslator.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@
1818
using MongoDB.Bson.Serialization;
1919
using MongoDB.Bson.Serialization.Serializers;
2020
using MongoDB.Driver.Linq.Linq3Implementation.Ast.Filters;
21+
using MongoDB.Driver.Linq.Linq3Implementation.Misc;
2122

2223
namespace MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.ToFilterFieldTranslators
2324
{
2425
internal static class MemberExpressionToFilterFieldTranslator
2526
{
2627
public static AstFilterField Translate(TranslationContext context, MemberExpression memberExpression)
2728
{
28-
var field = ExpressionToFilterFieldTranslator.Translate(context, memberExpression.Expression);
29+
var fieldExpression = ConvertHelper.RemoveConvertToInterface(memberExpression.Expression);
30+
var field = ExpressionToFilterFieldTranslator.Translate(context, fieldExpression);
2931
var fieldSerializer = field.Serializer;
3032
var fieldSerializerType = fieldSerializer.GetType();
3133

@@ -49,6 +51,5 @@ public static AstFilterField Translate(TranslationContext context, MemberExpress
4951

5052
throw new ExpressionNotSupportedException(memberExpression);
5153
}
52-
5354
}
5455
}

tests/MongoDB.Driver.Tests/Linq/Linq2ImplementationTestsOnLinq3/IntegrationTestBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ protected virtual void FillCustomDocuments(List<Root> customDocuments)
4141

4242
private bool OneTimeSetup(Type type)
4343
{
44-
var client = DriverTestConfiguration.Client;
44+
var client = DriverTestConfiguration.Linq3Client;
4545
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
4646
__collection = db.GetCollection<Root>(DriverTestConfiguration.CollectionNamespace.CollectionName);
4747
__otherCollection = db.GetCollection<Other>(DriverTestConfiguration.CollectionNamespace.CollectionName + "_other");

tests/MongoDB.Driver.Tests/Linq/Linq2ImplementationTestsOnLinq3/MongoQueryableEnumComparedToEnumTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class MongoQueryableEnumComparedToEnumTests
3030

3131
static MongoQueryableEnumComparedToEnumTests()
3232
{
33-
__client = DriverTestConfiguration.Client;
33+
__client = DriverTestConfiguration.Linq3Client;
3434
__database = __client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
3535
__collection = __database.GetCollection<C>(DriverTestConfiguration.CollectionNamespace.CollectionName);
3636
}
@@ -47,7 +47,7 @@ public class C
4747
[InlineData(E.B, "{ \"E\" : 1 }")]
4848
public void Where_operator_equal_should_render_correctly(E value, string expectedFilter)
4949
{
50-
var subject = __collection.AsQueryable3();
50+
var subject = __collection.AsQueryable();
5151

5252
var queryable = subject.Where(x => x.E == value);
5353

@@ -59,7 +59,7 @@ public void Where_operator_equal_should_render_correctly(E value, string expecte
5959
[InlineData(E.B, "{ \"E\" : { \"$gt\" : 1 } }")]
6060
public void Where_operator_greater_than_should_render_correctly(E value, string expectedFilter)
6161
{
62-
var subject = __collection.AsQueryable3();
62+
var subject = __collection.AsQueryable();
6363

6464
var queryable = subject.Where(x => x.E > value);
6565

@@ -71,7 +71,7 @@ public void Where_operator_greater_than_should_render_correctly(E value, string
7171
[InlineData(E.B, "{ \"E\" : { \"$gte\" : 1 } }")]
7272
public void Where_operator_greater_than_or_equal_should_render_correctly(E value, string expectedFilter)
7373
{
74-
var subject = __collection.AsQueryable3();
74+
var subject = __collection.AsQueryable();
7575

7676
var queryable = subject.Where(x => x.E >= value);
7777

@@ -83,7 +83,7 @@ public void Where_operator_greater_than_or_equal_should_render_correctly(E value
8383
[InlineData(E.B, "{ \"E\" : { \"$lt\" : 1 } }")]
8484
public void Where_operator_less_than_should_render_correctly(E value, string expectedFilter)
8585
{
86-
var subject = __collection.AsQueryable3();
86+
var subject = __collection.AsQueryable();
8787

8888
var queryable = subject.Where(x => x.E < value);
8989

@@ -95,7 +95,7 @@ public void Where_operator_less_than_should_render_correctly(E value, string exp
9595
[InlineData(E.B, "{ \"E\" : { \"$lte\" : 1 } }")]
9696
public void Where_operator_less_than_or_equal_should_render_correctly(E value, string expectedFilter)
9797
{
98-
var subject = __collection.AsQueryable3();
98+
var subject = __collection.AsQueryable();
9999

100100
var queryable = subject.Where(x => x.E <= value);
101101

@@ -107,7 +107,7 @@ public void Where_operator_less_than_or_equal_should_render_correctly(E value, s
107107
[InlineData(E.B, "{ \"E\" : { \"$ne\" : 1 } }")]
108108
public void Where_operator_not_equal_should_render_correctly(E value, string expectedFilter)
109109
{
110-
var subject = __collection.AsQueryable3();
110+
var subject = __collection.AsQueryable();
111111

112112
var queryable = subject.Where(x => x.E != value);
113113

tests/MongoDB.Driver.Tests/Linq/Linq2ImplementationTestsOnLinq3/MongoQueryableEnumComparedToEnumWithStringRepresentationTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class MongoQueryableEnumComparedToEnumWithStringRepresentationTests
3131

3232
static MongoQueryableEnumComparedToEnumWithStringRepresentationTests()
3333
{
34-
__client = DriverTestConfiguration.Client;
34+
__client = DriverTestConfiguration.Linq3Client;
3535
__database = __client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
3636
__collection = __database.GetCollection<C>(DriverTestConfiguration.CollectionNamespace.CollectionName);
3737
}
@@ -49,7 +49,7 @@ public class C
4949
[InlineData(E.B, "{ \"E\" : \"B\" }")]
5050
public void Where_operator_equal_should_render_correctly(E value, string expectedFilter)
5151
{
52-
var subject = __collection.AsQueryable3();
52+
var subject = __collection.AsQueryable();
5353

5454
var queryable = subject.Where(x => x.E == value);
5555

@@ -61,7 +61,7 @@ public void Where_operator_equal_should_render_correctly(E value, string expecte
6161
[InlineData(E.B, "{ \"E\" : { \"$gt\" : \"B\" } }")]
6262
public void Where_operator_greater_than_should_render_correctly(E value, string expectedFilter)
6363
{
64-
var subject = __collection.AsQueryable3();
64+
var subject = __collection.AsQueryable();
6565

6666
var queryable = subject.Where(x => x.E > value);
6767

@@ -73,7 +73,7 @@ public void Where_operator_greater_than_should_render_correctly(E value, string
7373
[InlineData(E.B, "{ \"E\" : { \"$gte\" : \"B\" } }")]
7474
public void Where_operator_greater_than_or_equal_should_render_correctly(E value, string expectedFilter)
7575
{
76-
var subject = __collection.AsQueryable3();
76+
var subject = __collection.AsQueryable();
7777

7878
var queryable = subject.Where(x => x.E >= value);
7979

@@ -85,7 +85,7 @@ public void Where_operator_greater_than_or_equal_should_render_correctly(E value
8585
[InlineData(E.B, "{ \"E\" : { \"$lt\" : \"B\" } }")]
8686
public void Where_operator_less_than_should_render_correctly(E value, string expectedFilter)
8787
{
88-
var subject = __collection.AsQueryable3();
88+
var subject = __collection.AsQueryable();
8989

9090
var queryable = subject.Where(x => x.E < value);
9191

@@ -97,7 +97,7 @@ public void Where_operator_less_than_should_render_correctly(E value, string exp
9797
[InlineData(E.B, "{ \"E\" : { \"$lte\" : \"B\" } }")]
9898
public void Where_operator_less_than_or_equal_should_render_correctly(E value, string expectedFilter)
9999
{
100-
var subject = __collection.AsQueryable3();
100+
var subject = __collection.AsQueryable();
101101

102102
var queryable = subject.Where(x => x.E <= value);
103103

@@ -109,7 +109,7 @@ public void Where_operator_less_than_or_equal_should_render_correctly(E value, s
109109
[InlineData(E.B, "{ \"E\" : { \"$ne\" : \"B\" } }")]
110110
public void Where_operator_not_equal_should_render_correctly(E value, string expectedFilter)
111111
{
112-
var subject = __collection.AsQueryable3();
112+
var subject = __collection.AsQueryable();
113113

114114
var queryable = subject.Where(x => x.E != value);
115115

tests/MongoDB.Driver.Tests/Linq/Linq2ImplementationTestsOnLinq3/MongoQueryableIntArrayComparedToEnumerableIntTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class MongoQueryableIntArrayComparedToEnumerableIntTests
3131

3232
static MongoQueryableIntArrayComparedToEnumerableIntTests()
3333
{
34-
__client = DriverTestConfiguration.Client;
34+
__client = DriverTestConfiguration.Linq3Client;
3535
__database = __client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
3636
__collection = __database.GetCollection<C>(DriverTestConfiguration.CollectionNamespace.CollectionName);
3737
}
@@ -45,7 +45,7 @@ public class C
4545
[InlineData(new int[] { 1, 2 }, "{ \"A\" : [1, 2] }")]
4646
public void Where_operator_equal_should_render_correctly(IEnumerable<int> value, string expectedFilter)
4747
{
48-
var subject = __collection.AsQueryable3();
48+
var subject = __collection.AsQueryable();
4949

5050
var queryable = subject.Where(x => x.A == value);
5151

@@ -56,7 +56,7 @@ public void Where_operator_equal_should_render_correctly(IEnumerable<int> value,
5656
[InlineData(new int[] { 1, 2 }, "{ \"A\" : { \"$ne\" : [1, 2] } }")]
5757
public void Where_operator_not_equal_should_render_correctly(IEnumerable<int> value, string expectedFilter)
5858
{
59-
var subject = __collection.AsQueryable3();
59+
var subject = __collection.AsQueryable();
6060

6161
var queryable = subject.Where(x => x.A != value);
6262

tests/MongoDB.Driver.Tests/Linq/Linq2ImplementationTestsOnLinq3/MongoQueryableIntComparedToDoubleTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class MongoQueryableIntComparedToDoubleTests
3030

3131
static MongoQueryableIntComparedToDoubleTests()
3232
{
33-
__client = DriverTestConfiguration.Client;
33+
__client = DriverTestConfiguration.Linq3Client;
3434
__database = __client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
3535
__collection = __database.GetCollection<C>(DriverTestConfiguration.CollectionNamespace.CollectionName);
3636
}
@@ -44,7 +44,7 @@ public class C
4444
[InlineData(1.5, "{ \"I\" : 1.5 }")]
4545
public void Where_operator_equal_should_render_correctly(double value, string expectedFilter)
4646
{
47-
var subject = __collection.AsQueryable3();
47+
var subject = __collection.AsQueryable();
4848

4949
var queryable = subject.Where(x => x.I == value);
5050

@@ -55,7 +55,7 @@ public void Where_operator_equal_should_render_correctly(double value, string ex
5555
[InlineData(1.5, "{ \"I\" : { \"$gt\" : 1.5 } }")]
5656
public void Where_operator_greater_than_should_render_correctly(double value, string expectedFilter)
5757
{
58-
var subject = __collection.AsQueryable3();
58+
var subject = __collection.AsQueryable();
5959

6060
var queryable = subject.Where(x => x.I > value);
6161

@@ -66,7 +66,7 @@ public void Where_operator_greater_than_should_render_correctly(double value, st
6666
[InlineData(1.5, "{ \"I\" : { \"$gte\" : 1.5 } }")]
6767
public void Where_operator_greater_than_or_equal_should_render_correctly(double value, string expectedFilter)
6868
{
69-
var subject = __collection.AsQueryable3();
69+
var subject = __collection.AsQueryable();
7070

7171
var queryable = subject.Where(x => x.I >= value);
7272

@@ -77,7 +77,7 @@ public void Where_operator_greater_than_or_equal_should_render_correctly(double
7777
[InlineData(1.5, "{ \"I\" : { \"$lt\" : 1.5 } }")]
7878
public void Where_operator_less_than_should_render_correctly(double value, string expectedFilter)
7979
{
80-
var subject = __collection.AsQueryable3();
80+
var subject = __collection.AsQueryable();
8181

8282
var queryable = subject.Where(x => x.I < value);
8383

@@ -88,7 +88,7 @@ public void Where_operator_less_than_should_render_correctly(double value, strin
8888
[InlineData(1.5, "{ \"I\" : { \"$lte\" : 1.5 } }")]
8989
public void Where_operator_less_than_or_equal_should_render_correctly(double value, string expectedFilter)
9090
{
91-
var subject = __collection.AsQueryable3();
91+
var subject = __collection.AsQueryable();
9292

9393
var queryable = subject.Where(x => x.I <= value);
9494

@@ -99,7 +99,7 @@ public void Where_operator_less_than_or_equal_should_render_correctly(double val
9999
[InlineData(1.5, "{ \"I\" : { \"$ne\" : 1.5 } }")]
100100
public void Where_operator_not_equal_should_render_correctly(double value, string expectedFilter)
101101
{
102-
var subject = __collection.AsQueryable3();
102+
var subject = __collection.AsQueryable();
103103

104104
var queryable = subject.Where(x => x.I != value);
105105

0 commit comments

Comments
 (0)