Что я должен поставить, чтобы вернуть список один ко многим в WebAPI? - PullRequest
1 голос
/ 03 июля 2019

Я пытался вернуть класс объекта, однако попытка не удалась.

public class tbl_Product
{     
    public tbl_Product()
    {
        tbl_ProductDescription = new HashSet<tbl_ProductDescription>();
        tbl_ProductPricing = new HashSet<tbl_ProductPricing>();
    }

    public Guid Id { get; set; }      
    public string ProductCode { get; set; }
    public string ProductName { get; set; }
    public Decimal Price { get; set; }

    [InverseProperty("Product")]
    public virtual ICollection<tbl_ProductPricing> tbl_ProductPricing { get; set; }
 }

Ниже моя функция WebAPI во время возврата:

[HttpGet]
public Task<ActionResult<ICollection<tbl_Product>>> GetProductList()
{
    var result = _context.tbl_Product
        .Include(a => a.tbl_ProductPricing).ToList();

    return result;
}

Однако я получил эту ошибку:

Cannot implicitly convert type 'System.Collections.Generic.List<Model.tbl_Product>' to 'System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ActionResult<System.Collections.Generic.ICollection<Model.tbl_Product>>>'

Могу ли я узнать, какой тип возврата я должен указать?

1 Ответ

1 голос
/ 03 июля 2019
[HttpGet]
public async Task<ActionResult<ICollection<tbl_Product>>> GetProductList()
{
    return Ok(await _context.tbl_Product.Include(a => a.tbl_ProductPricing).ToListAsync());
}

Возвращаемый экземпляр должен соответствовать типу, указанному в сигнатуре метода. В вашем случае вы указываете, что возвращаемый тип будет Task<ActionResult<ICollection<tbl_Product>>>, поэтому он должен 1) возвращать задачу и 2) задача должна разрешать экземпляр ActionResult<ICollection<tbl_Product>> и 3) что ActionResult должен иметь содержимое, реализующее ICollection<tbl_Product> .


Я предполагаю, что вы используете ядро ​​.net и ссылаетесь на ActionResult<T>

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