Я знаю, что var является только областью действия внутри его метода. Но я столкнулся с ситуацией, когда коллекция «var» из метода подключения к базе данных должна быть доступна в последующем методе Query(), чтобы сделать запрос.Как ссылаться на 'var' от одного метода в другом?
Специфическая ошибка: The name collection doesn't exist in the current context
Я ссылающийся на MongoDB C# driver docs для того, чтобы установить соединение и запрос, и все кажется правильным, кроме этого вопроса.
Кто-нибудь знает, как я могу реструктурировать свой код для устранения ошибки?
Моих два метода определены следующим образом в классе OrderRespository, что делает соединение с базой данных и запросы:
//Method to create MongoDB Orders connection and get handle on collections
public static bool CreateConnection()
{
var client = new MongoClient(connectionString);
try
{
var database = client.GetDatabase("orders");
//Get a handle on the customers collection:
var collection = database.GetCollection<BsonDocument>("customers");
}
catch(MongoConnectionException)
{
return false;
}
return true;
}
//Method to test query on database documents
public async static Task<List<Customer>> FindCustomers()
{
var documents = await collection.Find(new BsonDocument()).ToListAsync();
List<Customer> customerList = await documents.ToListAsync();
return await documents.ToListAsync();
}
И это клиент Модель ПОКО класс моделирует поля коллекции:
public class Customer
{
/// <summary>
/// This attribute is used to map the Id property to the ObjectId in the collection
/// </summary>
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("firstName")]
public string firstName { get; set; }
[BsonElement("lastName")]
public string lastName { get; set; }
[BsonElement("email")]
public string Email { get; set; }
}
Вы пытались объявить переменную вне методов прямо в определении OrderRepository? Это должно дать ему глобальный охват. – Tim
Сделать это статическим свойством (или полем) класса (с соответствующим типом, а не 'var') или передать его из одного метода другому в качестве аргумента. –