大家好,对不起我的英语不好!
我正在使用 Entity Framework Core 5 + Postgre +动态 linq 核心做一些测试
我的 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; }
}
问题:是否可以在 where 中使用 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?如果有可能做到这一点,我错了吗?
谢谢!