c# - ASP.NET Core MVC + 实体框架 + GET + 数组
问题描述
我正在做一些测试来做一个项目。我最近一直在使用 ASP.NET Core MVC 和 Entity Framework。我在 SQL Server 中有一个简单的数据库来证明它是如何实现的:
在测试项目中,我有一个控制器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;
}
}
}
}
显然我做错了,但输出是这样的:
在 localhost/api/值中:
["ahora",null,null,null,null]
它只显示我数据库的最后一条记录后跟几个NULL,这个测试的想法是所有结果都加载到数组中。
我确定这是一个很早的错误,希望您能指导我。
解决方案
你的代码效率不高。这是执行相同操作的更简洁的版本:
using (TareasContext db = new TareasContext())
{
var result = db.Tareas.Select(x => x.Tarea).ToList();
return result;
}
如我所见,该Tarea
列属于varchar
或nvarchar
类型。因此,您无需将其转换为字符串。
推荐阅读
- java - JVM中用于初始化对象数组的内存分配
- flutter - 如何导出 adobe xd 以在所有 android 和 ios 手机上显示相同的颤振?
- android - 在与场景 onBillingServiceDisconnected 被调用?
- javascript - React,单击复选框后如何获取数据?
- passport.js - 带有 google-outh 策略的护照
- react-native - D8:程序类型已经存在:androidx.renderscript.Allocation$1
- python - 如何从一个条件打印字符串,直到满足另一个条件?
- java - 尝试持久化分离的对象时,关于“分离的实体传递给持久化”异常的异常行为?
- adobe-analytics - Mouseflow 会话 ID Adobe Analytics
- javascript - 如何将嵌入式播放器集成到我网站的元数据中?