2016-04-15 95 views
0

您好我我的MongoDB驅動程序升級到2.2.3.3版本,我想使用運營商的SelectMany查詢嵌套document.But當我嘗試執行我查詢我獲得「查詢的SelectMany運營商不支持錯誤」。這裏是我的代碼:MongoDB的C#驅動LINQ的SelectMany操作

MongoDatabase database; 
var client = new MongoClient("mongodb://myconnection"); 
var server = client.GetServer(); 
database = server.GetDatabase("MyDB"); 
MongoCollection<DGTable> collection; 
collection = database 
    .GetCollection<DGTable>(typeof(DGTable).Name); 

var result = collection.AsQueryable() 
    .SelectMany(p => p.TableColumns); 
var abc = result.ToList(); 
+1

如果錯誤是「不支持」,並沒有告訴您什麼問題是?你的問題是什麼? –

+0

正如我所知道的最新版本2.2.3.3 mongodb c#驅動程序支持SelectMany能力,並且我想了解,SelectMany的錯誤用法或可能是我不得不使用SelectMany做不同的事情。 – Bilgehan

回答

1

可以推遲調用.SelectMany(...),直到你有數據之後。方法調用不會增加數據量或執行某些特定於數據庫的性能操作,因此沒有明確的理由在查詢中調用它。

var result = collection.AsQueryable() 
    .Select(p => p.TableColumns) 
    .ToList(); 
var abc = result 
    .SelectMany(p => p) 
    .ToList(); 
0

我找到解決辦法,我有一些obsolute方法和我升級我的代碼,以新的方法,然後它工作

 var client = new MongoClient("mongodb://myconnection"); 

     var db = client.GetDatabase("mydb"); 
     var col = db.GetCollection<DGTable>("DGTable"); 

     var sadsdadas = col.AsQueryable().SelectMany(p => p.TableColumns).ToList();