C# 在同一命名空间中使用MongoDB.Driver.Linq和System.Linq可能会遇到哪些冲突?
我有一个关于MongoDB扩展方法的问题- 我想在同一名称空间中导入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.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签名不同。这些扩展方法之间没有任何冲突