如何在 Web API 中从 postgresql 数据库中读取数据 asp.net



我正在开发一个具有 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);
}

相关内容

  • 没有找到相关文章

最新更新