ASP.NET MVC核心+实体框架+得+阵列

问题描述 投票:0回答:2

我做了一些测试,采取一个项目。我一直在使用ASP.NET MVC的核心和Entity Framework相对较近。我有一个简单的数据库SQL Server中,以证明它是如何:

enter image description here

在测试项目中,我有一个控制器TestController;代码是这样的:

using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using WEBAPPHTTP.Models;

namespace WEBAPPHTTP.Controllers
{
    [Route ("api/controller[]")]
    public class TestController: Controller
    {
        [HttpGet("/api/values")]
        public IEnumerable<string> Get()
        {
            using (TareasContext db = new TareasContext())
            {
                var listar = db.Tareas;
                var n = listar.Count();

                string[] array = new string[n+1];
                int i = 0;
                foreach (var otareas in listar)
                {
                    array[i] = otareas.Tarea.ToString();
                    i = i++;
                }

                return array;
            }
        }
    }
}

很显然,我做错了什么,但输出是这样的:

在本地主机/ API /值:

["ahora",null,null,null,null]

这只能说明我的数据库跟着几个空的最后一条记录,该测试的想法是,所有的结果都在阵列中加载。

我敢肯定,这是一个非常早期的错误,我希望你能指导我。

c# entity-framework asp.net-core-mvc
2个回答
2
投票

我不知道你想在这之后的事,但如果你只是想列出你的项目,你应该能够做这样的事情:

using (TareasContext db = new TareasContext())
        {
            return db.Tareas.ToList();

        }

这会给你的完整列表,在它的所有项目的所有属性,如果你想只说自己的特性,我建议做。选择以及一部分。请记住,做一个地方,以及所以你不要总是返回完整列表(如果它得到enourmus大)

和平!


2
投票

你的代码是没有效率的。这是更清洁的版本不相同:

using (TareasContext db = new TareasContext())
{
    var result = db.Tareas.Select(x => x.Tarea).ToList();
    return result;
}

当我看到Tareavarcharnvarchar类型。所以,你不需要它转换为字符串。

© www.soinside.com 2019 - 2024. All rights reserved.