私には関数があります(下記参照)。MongoDB C#型/クラス名をパラメータとして渡すことができる関数を作成します
それは私がそれを行うために必要なもののための素晴らしい作品、と私はほとんどこれらの2行を除いて、まったく同じことであるもう一つ持っている:私は何とか機能させることができるようにしたい
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