将VAR转换为C#中的类对象



我希望从我的ASP.NET Web API中获取响应,该API使用对象类型Product响应。

但是,当我尝试与Postman获得回应时,它总是将我带给我

500内部服务器错误。

以下是我的代码,事先感谢您提供的任何帮助:

[ResponseType(typeof(Product))]
[Route("webapi/products/{productname}")]
public async Task<IHttpActionResult> GetProduct(string productname)
{
    var product = (Product)db.Products.Where(t => t.name.Contains(productname));
    //^^^^^^this seems to be the problem^^^^^^^//
    if (product == null)
    {
        return NotFound();
    }
    return Ok(product);
}

其中返回 IQueryable<Product>(这意味着可能有多个),并且不能将其投入到产品上。如果您只需要一个,那么,您可以从结果中提取:

var product = (Product)db.Products.Where(t => t.name.Contains(productname)).FirstOrDefault();

这可以简化为:

var product = db.Products.FirstOrDefault(t => t.name.Contains(productname));
如果没有

编辑:如评论中所述,这里不需要演员,但是我将其留在第一个示例中,以与原始问题相关。谢谢,尼科。

返回iEnumerable的地方,您无法将其投入到产品中。如果您只需要第一个匹配值,则可以在此类似的最后调用firstordEfault:

var product = db.Products.Where(t => t.name.Contains(productname)).FirstOrDefault();

最新更新