2015-12-02 7 views
12

मोंगोडीबी सी # चालक के संस्करण 2.1 की रिलीज ने हाल ही में AsQueryable विधि को पुन: प्रस्तुत किया है, लेकिन मैं इसे अतुल्यकालिक रूप से कॉल करने का एक तरीका ढूंढने के लिए संघर्ष कर रहा हूं।मैं MongoDb C# ड्राइवर 2.1 के साथ असीमित रूप से AsQueryable विधि का उपयोग कैसे करूं?

इकाई फ्रेमवर्क के साथ यह QueryableExtensions.ToListAsync का उपयोग करके हासिल किया जाएगा, लेकिन मैं मोंगोडीबी का उपयोग करके समकक्ष नहीं देख सकता।

तो जैसे भंडार विधि दिया:

public IQueryable<MyType> GetFiltered(Expression<Func<MyType, bool>> predicate) 
{ 
     return Database.GetCollection<MyType>(typeof(MyType).Name).AsQueryable().Where(predicate); 
} 

मैं की तरह

var myTypes = await MyRepository.GetFiltered(t => t.Id == 1).ToListAsync(); 

यह संभव है कुछ करना चाहता था?

उत्तर

11

आप GetFiltered फ़ंक्शन से गलत प्रकार लौट रहे हैं। यह IQueryable<MyType> के बजाय एक IMongoQueryable<MyType> लौट जाना चाहिए:

var myTypes = await MyRepository.GetFiltered(t => t.Id == 1).ToListAsync(); 
:

public IMongoQueryable<MyType> GetFiltered(Expression<Func<MyType, bool>> predicate) 
{ 
    return Database.GetCollection<MyType>(typeof(MyType).Name).AsQueryable() 
     .Where(predicate); 
} 

फिर आप इसे सफलतापूर्वक के रूप में कॉल कर सकते हैं

संबंधित मुद्दे