Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从实体框架核心正确调用Postgres函数?_C#_Postgresql_Entity Framework_Asp.net Core_Entity Framework Core - Fatal编程技术网

C# 如何从实体框架核心正确调用Postgres函数?

C# 如何从实体框架核心正确调用Postgres函数?,c#,postgresql,entity-framework,asp.net-core,entity-framework-core,C#,Postgresql,Entity Framework,Asp.net Core,Entity Framework Core,我有一个函数需要从Postgres调用,这是我目前所拥有的: var s1 = new Npgsql.NpgsqlParameter("_date", NpgsqlDbType.Date) { Direction = System.Data.ParameterDirection.Input, Value = DateTime.Now.Date }; var command = await _context.AggregateBalances.FromSqlRaw($

我有一个函数需要从Postgres调用,这是我目前所拥有的:

var s1 = new Npgsql.NpgsqlParameter("_date", NpgsqlDbType.Date)
{
  Direction = System.Data.ParameterDirection.Input,
  Value = DateTime.Now.Date
};

var command = await _context.AggregateBalances.FromSqlRaw($"SELECT * from get_aggregate_balance(@s1)", s1).ToListAsync();
当我尝试此操作时,会出现以下异常:

这是pgAdmin的输出:

为了映射此结果,我创建了此模型/数据库集:

public class SPGetAggregateBalance
{
   public int Id { get; set; }
   public decimal Balance { get; set; }
}

public DbSet<SPGetAggregateBalance> AggregateBalances { get; set; }
公共类SPGetAggregateBalance
{
公共int Id{get;set;}
公共十进制余额{get;set;}
}
公共数据库集聚合平衡{get;set;}

为什么“s1”是一列?为什么它不存在?

尝试使用

var s1=DateTime.Now.ToString("yyyy/MM/dd");

var command = await _context.SPGetAggregateBalances.FromSqlInterpolated($"SELECT * FROM  get_aggregate_balance({s1})")

添加到您的EF上下文:

  modelBuilder.Entity<SPGetAggregateBalance>(e =>
            {
                e.HasNoKey();
            });
modelBuilder.Entity(e=>
{
e、 HasNoKey();
});

请尽可能发布文本而不是图像,例如异常堆栈跟踪。看起来完整的表值支持将在EF Core 5中完成,包括返回IQueryable的db函数。如