По какой-то причине я хочу получить объект DBConnection объекта DBContext.
Поскольку DBConnection, DBCommand и DBDataReader являются одноразовыми, я использовал их следующим образом:
public static void Query(DBContext context)
{
using var conn = context.Database.GetDbConnection();
conn.Open();
using var cmd = conn.CreateCommand();
// do something
using var reader = cmd.ExecuteReader();
// do something
}
Когда этот метод был завершен, я хотел использовать объект DBContext в другом методе. И затем объект DBContext ошибся с InvalidOperationException : свойство connectionstring не было инициализировано
Я пытаюсь получить DBConnection в следующем методе, который вызвал это исключение, и обнаружил, что свойство State было " Закрыто ".
Возвращает ли метод context.DataBase.GetDbConnection()
один и тот же экземпляр каждый раз?
Если я не добавлю , используя перед объектом conn, например:
var conn = context.Database.GetDbConnection();
using var cmd = conn.CreateCommand();
// something just the same as above
Все в порядке.
Могу ли я просто сделать не утилизировать объект DBConnection после его использования, если у объекта DBContext есть другие дела?
Это безопасно?
Кстати, объект DBContext объявлен using
.