根据您的查询,您正在尝试从“加载”表进行查询。
var sqlQuery = $"SELECT * FROM Load WHERE LoadID = {0}";
但是错误提到:
Postgres DB 不包含“tbload”表
这可能是在您的 DbContext 中,您将
LoadEntity
链接到 tbload
表。
确保相应的实体指向数据库中正确的表(名称)。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<LoadEntity>(entity =>
{
entity.ToTable("load");
...
});
...
}
此外,您使用
FromSqlRaw
的方式是不正确且不安全的。目前,您正在查询一个号码,这很好。想象一下,你有另一个查询需要使用 string/varchar/nvarchar 值进行查询,这可能会导致 SQL 注入攻击,例如查询用户数据、删除或删除表/数据库,你会很头疼。
但是,如果使用不当,FromSqlRaw 方法可能容易受到 SQL 注入攻击。请参阅下文了解更多详情。
建议使用参数化查询。
var idParameter = new SqlParameter("id", id);
var sqlQuery = "SELECT * FROM Load WHERE LoadID = @id";
var entity = await _dbContext.LoadEntities
.FromSqlRaw(sqlQuery, idParameter)
.ToListAsync();