【问题标题】:How to return multiple rows of data in web api?如何在 web api 中返回多行数据?
【发布时间】:2017-02-03 11:24:31
【问题描述】:

您好,我正在做 web api 项目。我有一个 get http 动词,我想返回多行数据。我在前端使用角度。我正在尝试如下。

public IEnumerable<NCT_Process_Settings> Get()
{
    NCT_Process_Settings obj = (from c in entityObject.NCT_Process_Settings select c).AsEnumerable();
    return obj;
}

据我所知,我的查询返回集合,而我的对象 obj 无法处理多行数据。那么我有什么办法可以处理这个吗?任何帮助将不胜感激。谢谢。

【问题讨论】:

  • IEnumerable&lt;NCT_Process_Settings&gt; obj =(from ....(您的查询返回一个集合,而不是单个对象
  • 谢谢。请发布答案。工作...
  • 你也可以使用var obj = (from ...来推断类型

标签: c# asp.net-mvc-4 asp.net-web-api ienumerable


【解决方案1】:

试试这个

        [Route("api/test")]
        public HttpResponseMessage Get()
        {
            HttpResponseMessage response = null;
            List<table_name> obj = new List<table_name>();
            try
            {
                obj = db.table_name.AsNoTracking().ToList();

                response = Request.CreateResponse(HttpStatusCode.OK, obj);
            }
            catch (Exception ex)
            {
                response = Request.CreateResponse(HttpStatusCode.NotFound);
            }
            return response;
        }

然后用http://192.168.0.1/api/test访问这个api

table_name 可以是模型

【讨论】:

    【解决方案2】:

    您声明了一个作为单个对象的变量,但您试图为其分配一组对象(查询的结果)。把代码改成

    IEnumerable<NCT_Process_Settings> obj = (from c in entityObject.NCT_Process_Settings select c).AsEnumerable();
    return obj;
    

    var obj = (from c in entityObject.NCT_Process_Settings select c).AsEnumerable();
    return obj;
    

    【讨论】:

    • 谢谢。如果我得到行到 var 那么 IEnumerable 会起作用吗?对不起,如果我错了。
    • 使用var 可以正常工作(在内部,编译器会根据查询返回的内容推断类型,因此它与IEnumerable&lt;NCT_Process_Settings&gt; 相同)。附带说明一下,您可能不需要.AsEnumerable(),这使它成为内存集。您可以只返回IQueryable&lt;NCT_Process_Settings&gt;,这可能会更有效,具体取决于您随后对该集合执行的操作
    • 谢谢。我理解并感谢你让我理解这个概念。
    【解决方案3】:

    你可以试试这个,效果很好

    public static List<Student> items = new List<Student>();
    
    
            [HttpGet]
            public IEnumerable<Student> GetAllStudents()
            {
                if (items.Count() == 0)
                {
                    items.Add(new Student { ID = 1, Name = "Ashish", City = "New Delhi", Course = "B.Tech" });
                    items.Add(new Student { ID = 2, Name = "Nimit", City = "Noida", Course = "MCA" });
                    items.Add(new Student { ID = 3, Name = "Prawah", City = "Dehradun", Course = "B.Tech" });
                    items.Add(new Student { ID = 4, Name = "Sumit", City = "Nainital", Course = "MCA" });
                }
    
                return items;
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多