Как использовать Async Task ? Или как запустить асинхронно в моем веб -API ASP.netC#

Место общения программистов C#
Ответить
Anonymous
 Как использовать Async Task ? Или как запустить асинхронно в моем веб -API ASP.net

Сообщение Anonymous »

Я пытаюсь запустить свое действие контроллера асинхронным способом.
Как я могу использовать Async Task? Или как запустить Async Way < /p>

Код: Выделить всё

// Db context
public class DeptContext : DbContext
{
public LagerContext(DbContextOptions options)
: base(options)
{

Database.Migrate();
}

public DbSet Departments { get; set; }
public DbSet
 Products { get; set; }

}
// Это мой интерфейс ideprepository

Код: Выделить всё

Task GetDepartmentWithOrWithoutProducts(int deptId, bool includeProducts);
// и мой класс репозитория DepRepository

Код: Выделить всё

public class DepRepository : IDepRepository
{
private DeptContext db;
public DepRepository(DeptContext context)
{
db = context;
}

// I'am geting Department name with products or Without products

public async Task GetDepartmentWithOrWithoutProducts(int deptId, bool includeProducts)
{
if(includeProductss)
{
return await db.Departments.Include(c => c.Products).Where(s => s.deptId == deptId).SingleAsync();
}
return await db.Departments.Where(s => s.deptId == deptId).SingleAsync();
}
}
< /code>
Итак, как мне сделать сейчас в моем контроллере, чтобы сделать это как асинхронный способ: я пытался следующим образом, но я не знаю, правильно ли это делать:
Я не получаю ошибки, но я не знаю, если это правильно ... < /p>
using System.Threading.Tasks;
using System.Net;
using Microsoft.Data.Entity;
using Microsoft.EntityFrameworkCore;

[Route("api/departments")]
public class DepartmentsController : Controller
{
private IDeptRepository _deptInfoRepository;

public DepartmentsController(IDeptRepository deptInfoRepository)
{
_deptInfoRepository = deptInfoRepository;
}

[HttpGet("{id}")]
public async Task GetDepatment(int id, bool includeProducts = false)
{
var dept = _deptInfoRepository.GetDepartmentWithOrWithoutProducts(id, includeComputers);
if(dept == null)
{
return BadRequest();
}

if(includeProducts)
{
var depResult =  new DepartmentDto() { deptId = dept.deptId, deptName = dept.deptName };
foreach(var department in dept.Products)
{
depResult.Products.Add(new ProductDto() { productId = department.productId, deptId = department.deptId, ProductName =                     department.ProductName });
}

return Ok(depResult);
}

var departmentWithoutProductResult = new DepartmentsWithoutProductsDto() { DeptId = dept.deptId, DeptName = dept.DeptName};
return Ok(departmentWithoutProductResult);

}
Как мне сделать, чтобы получить свой контроллер асинк.>

Подробнее здесь: https://stackoverflow.com/questions/448 ... -my-asp-ne
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»