Я пытаюсь получить список клиентов / товаров / категорий из базы данных. В списке выбора будет отображаться только список клиентов / товаров / категорий текущего пользователя / текущего пользователя, вошедшего в систему.
Но я получаю только первый элемент, принадлежащий текущему зарегистрированному пользователю.
В базе данных каждого пользователя есть applicationUserId
. Я должен получить весь список клиентов / категорий / товаров текущего пользователя в списке выбора
public IActionResult Create()
{
var currentUser = _userManager.GetUserAsync(HttpContext.User);
ViewData["CustomerId"] = new SelectList(_context.Customers.Where(c => c.ID == currentUser.Id), "ID", "Name") ;
ViewData["ProductId"] = new SelectList(_context.Products.Where(p => p.ProductId == currentUser.Id), "ProductId", "ProductName");
ViewData["CategoryId"] = new SelectList(_context.Categories.Where(p =>p.CategoryId == currentUser.Id) , "CategoryId", "CategoryName");
return View();
}
Обновленный код
public IActionResult Create()
{
var currentUser = _userManager.GetUserAsync(HttpContext.User);
string userId = currentUser.Id.ToString();
ViewData["CustomerId"] = new SelectList(_context.Customers.Where(c => c.ApplicationUserId == userId), "ID", "Name");
ViewData["ProductId"] = new SelectList(_context.Categories.Where(p => p.ApplicationUserId == userId), "ProductId", "ProductName");
ViewData["ProductId"] = new SelectList(_context.Products.Where(p => p.ApplicationUserId == userId), "ProductId", "ProductName");
return View();
}
после обновления кода я получил
InvalidOperationException: A second operation started on this context before a previous operation completed. This is usually caused by different threads using the same instance of DbContext, however instance members are not guaranteed to be thread safe. This could also be caused by a nested query being evaluated on the client, if this is the case rewrite the query avoiding nested invocations.