System.Dynamic.Linq.Core + PostreSql调用date_part函数

问题描述

大家好,抱歉我的英语不好!

我正在使用Entity Framework Core 5 + Postgre + dynamic linq core

做一些测试

我的DataContext定义如下:

 public class Context: DbContext {

    public DbSet<Models.Anagrafica> Anagrafiche {get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseNpgsql(@"Host=XYZ;Database=XYZ;Username=XYZ;Password=XYZ");
        base.OnConfiguring(optionsBuilder);
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Models.Anagrafica>().ToTable("Anagrafiche");
        modelBuilder.Entity<Models.Anagrafica>().Property(p => p.Id)HasColumnName("id");
        modelBuilder.Entity<Models.Anagrafica>().Property(p => p.Ragionesociale).HasColumnName ("ragionesociale");
        modelBuilder.Entity<Models.Anagrafica>().Property(p => p.DataAttivazione).HasColumnName("dataattivazione");
        base.OnModelCreating (modelBuilder);
    }
}

实体Anagrafica的定义如下:

public class Anagrafica {
    public int Id { get; set; }
    public string Ragionesociale { get; set; }
    public DateTime? DataAttivazione { get; set; }
}

问题: 可以在哪里使用date_part函数吗?

如果我运行代码

var data =  context.Anagrafiche.Where("date_part(\"week\",dataattivazione) = @0",1).ToList();

我收到错误消息

System.Linq.Dynamic.Core.Exceptions.ParseException:'类型'Anagrafica'中不存在适用的方法'date_part'

是否可以在Dynamic Linq中使用数据库功能和/或UDF? 如果可以的话,我错了吗?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)