我有一個函數(見下文)。MongoDB C#創建一個函數,我可以傳遞一個類型/類名作爲參數
它的偉大工程什麼我需要做的,而且,我還有一個幾乎是除了這兩條線完全一樣的事情:
var collection = MongoDB.GetCollection<RocketRequest>("RocketRequest");
var filter = Builders<RocketRequest>.Filter.Eq("RocketRequestId", 4);
我希望能夠以某種方式使功能動態的,所以我可以通過它,所以我可以使用這個相同的功能爲多種目的/類型,而不需要爲每一個創建一個新的功能。
對於上述2行我想看看是否有可能以某種方式將集合中的對象作爲參數傳遞給函數?
或者最壞的情況有一個switch語句來檢查我通過的字符串值,並說如果是這樣,設置它,否則將其設置爲別的。這樣做的問題是我無法在switch語句中創建變量,如果我嘗試在交換機外創建它,我必須將其作爲空對象(然後將集合設置爲交換機內所需的集合),然後我可以沒有得到那個工作。
public static int MongoReadData(string[] MongoListOfFieldsToDisplay)
{
int CountRecords = 0;
// create connection TO MongoDB
MongoClient MongoClientConn = new MongoDatabaseConnection().mongoConn();
var MongoDB = MongoClientConn.GetDatabase("Viper");
var collection = MongoDB.GetCollection<RocketRequest>("RocketRequest");
var filter = Builders<RocketRequest>.Filter.Eq("RocketRequestId", 4);
//var filter = Builders<RocketRequest>.Filter.Empty;
var result = collection.Find(filter).ToListAsync().Result;
// do here so it is after the filtering
CountRecords = Convert.ToInt32(collection.Find(filter).Count());
return CountRecords;
}// end MongoReadData
不明白你需要什麼。你的函數返回count。你根本不需要foreach循環 –
我還在玩東西,所以函數本身不是問題。我需要知道的是,如果我可以傳遞一些東西給函數,所以我可以改變MongoDB.GetCollection(「RocketRequest」);像這樣:MongoDB.GetCollection (「DynamicPassedToFunction」); –
Brad