Уже есть открытый DataReader, связанный с этим соединением, который должен быть закрыт сначала C# с Mysql с использованием Entity Framework - PullRequest
0 голосов
/ 16 апреля 2020

Мы используем Entity Framework с MySQL отображением. DbContext вводится в контроллер.

Добавление контекста данных:

IManageClientService _manageClientService;

public ManageClientController(IManageClientService manageClientService, DataContext dataContext) 
    : base(dataContext) 
{
    this._manageClientService = manageClientService;
}

Ниже приведен один из методов действия.

[HttpGet]
public IActionResult Search()
{
    var model = new ClientControlData();

    try
    {
        model.ClientNameList = DataContext.Clients
                                          .Select(c => new SelectListItem 
                                                           {
                                                                Text = c.ClientName, 
                                                                Value = c.ClientId.ToString() 
                                                           });
    }
    catch (Exception ex)
    {
        olog.Error("An exception occurred while processing Search for Client: " + ex.Message);
        olog.Info("Stack trace for exception: " + ex.StackTrace);
    }

    return View(model);
}

После завершения выполнения при загрузке страницы мы вызываем другой метод действия с параметрами по умолчанию, который возвращает JSON. Ниже приведен код для метода действия.

[HttpGet]
public IActionResult GetClientDetails(string sidx, string sord, int page, int rows, string clientName)
{
    int pageIndex = Convert.ToInt32(page) - 1;
    int pageSize = rows;

    var clientControlData = new List<ClientControlData>();
    var clientData = from w in DataContext.ClientControlDatas
                     select new
                     {
                         w.ControlDataId,
                         w.ClientId,
                         w.WarehouseId,
                         w.WarehouseName,
                         w.RouteUsersAllowed,
                         w.CreateDate,
                         w.CreateBy,
                         w.ModifyDate,
                         w.ModifyBy,
                         w.Status
                     };

    if (!string.IsNullOrEmpty(clientName))
    {
        clientData = clientData.Where(p => p.ClientId.ToString() == clientName.ToString());
    }

    foreach (var obj in clientData)
    {
        var objClientId = obj.ClientId;
        var objClient = DataContext.Clients.Where(x => x.ClientId == objClientId).FirstOrDefault();
    }
}

Это ошибка, которую я получаю:

Уже существует открытый DataReader, связанный с этим соединением, который должен быть закрыт первым

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...