我有一个使用.NET CORE的项目,我的控制器已经有了System.Linq。不知何故,我在尝试使用Count()时仍然有错误。
using xxx.Core;
using xxx.DataAccess;
using xxx.DataAccess.Azure;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
namespace xxx.Api.Controllers
{
[Route("api/[controller]")]
public class ResourcesController : Controller
{
private static DocumentDB _db = new DocumentDB();
[HttpGet("{id}")]
public IActionResult Get(string id)
{
using (var unitOfWork = new UnitOfWork(_db))
{
var r = unitOfWork.Resources.Get(id);
Models.resource result = ConvertResourceModel(r);
if (result.Count() != 1)
{
return NotFound();
}
else
{
return Ok(result);
}
}
}
if(result.Count()!= 1)的行在Count()上有一个错误说“资源不包含Count的定义而没有扩展方法Count接受类型资源的第一个参数... “我的资源模型定义如下:
public class resource
{
public string id { get; set; }
public string description { get; set; }
public List<translations> translations { set; get; }
public DateTime modified { get; set; }
public DateTime accessed { get; set; }
public string by { get; set; }
}
public class translations {
public string language { set; get; }
public string content { set; get; }
public DateTime modified { get; set; }
public DateTime accessed { get; set; }
public string by { get; set; }
}
我不确定为什么。有帮助吗?谢谢!
答案 0 :(得分:0)
您的资源不是列表而是对象。更好的实施将是这样的。
[HttpGet("{id}")]
public IActionResult Get(string id)
{
using (var unitOfWork = new UnitOfWork(_db))
{
var r = unitOfWork.Resources.Get(id);
if (r == null)
{
return NotFound();
}
return Ok(ConvertResourceModel(r));
}
}