C# 在同一命名空间中使用MongoDB.Driver.Linq和System.Linq可能会遇到哪些冲突?

C# 在同一命名空间中使用MongoDB.Driver.Linq和System.Linq可能会遇到哪些冲突?,c#,mongodb,linq,C#,Mongodb,Linq,我有一个关于MongoDB扩展方法的问题- 我想在同一名称空间中导入MongoDB.Driver.Linq和System.Linq,在该名称空间中我正在创建一个存储库访问层,它将由API中的服务层使用 这让我可以做一些类似的事情: private readonly IMongoCollection _collection; public Repository(IMongoDatabase database) { _collection = database.GetCollection

我有一个关于MongoDB扩展方法的问题-

我想在同一名称空间中导入
MongoDB.Driver.Linq
System.Linq
,在该名称空间中我正在创建一个存储库访问层,它将由API中的服务层使用

这让我可以做一些类似的事情:

private readonly IMongoCollection _collection;

public Repository(IMongoDatabase database)
{
     _collection = database.GetCollection("SomeCollection");
}

// Method 1
public IQueryable<TEntity> GetByCondition(Expression<Func<TEntity, bool>> expression)
{
     return _collection.AsQueryable().Where(expression);
}

// Method 2
public async Task<List<T>> GetByConditionAsync(Expression<Func<T, bool>> expression)
{
     return await _collection.AsQueryable().Where(expression).ToListAsync();
}
私有只读IMongoCollection\u collection;
公共存储库(IMongoDatabase)
{
_collection=database.GetCollection(“SomeCollection”);
}
//方法1
公共IQueryable GetByCondition(表达式)
{
返回_collection.AsQueryable().Where(表达式);
}
//方法2
公共异步任务GetByConditionAsync(表达式)
{
return wait_collection.AsQueryable().Where(expression.toListSync();
}
问题是我需要
System.Linq
来允许方法1返回
IQueryable
对象(因此我的服务层不知道MongoDB实现的细节)。相反,在方法2中,我需要
MongoDB.Driver.Linq
使用
.Where()
方法返回
imongokeryable
对象,因此使用
.toListSync
扩展方法


在名称空间中同时使用这两个名称是否可能导致问题?我读了一些书,认为它可能

否,因为两种方法之间的lambda签名不同。这些扩展方法之间没有任何冲突