我正在开发一个具有 asp.net 核心的Web API,我想从我的postgresql数据库中检索数据。当没有数据时,它会显示一个空数组,但是当我将数据添加到数据库时,它会返回错误。
这适用于 asp.net 核心 2.2 和 PostgreSQL 版本 10。我使用代码优先和实体框架设置了带有模型的数据库。我使用实体框架以及模型和数据库上下文创建了控制器。我试图更改控制器中的代码,但没有任何效果。
我的客户端模型
public class Client
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
我的数据库上下文
public BillingDb(DbContextOptions<BillingDb> options)
: base(options)
{
}
public virtual DbSet<Account> Account { get; set; }
public virtual DbSet<Charge> Charge { get; set; }
public virtual DbSet<Client> Client { get; set; }
省略了一些代码
我的客户端控制器
// GET: api/Clients
[HttpGet]
public async Task<ActionResult<IEnumerable<Client>>> GetClient()
{
return await _context.Client.ToListAsync();
}
预期成果: https://localhost:44399/api/clients
[
{ "id": 1,
"FirstName": "Martha",
"LastName": "Lungu",
}
]
错误正在得到
An unhandled exception occurred while processing the request.
InvalidCastException: Can't cast database type text[] to String
Npgsql.NpgsqlDefaultDataReader.GetFieldValue(int column) in
NpgsqlDefaultDataReader.cs, line 104
BillingService.Controllers.ClientsController.GetClient() in
ClientsController.cs + return await _context.Client.ToListAsync();
您可以将数据作为 JSON 传递
[HttpGet]
public async Task<ActionResult<IEnumerable<Client>>> GetClient()
{
var myData=await _context.Client.ToListAsync();
return Json(myData , JsonRequestBehavior.AllowGet);
}