代码之家  ›  专栏  ›  技术社区  ›  Kirsten

从字符串[XAF ListViewFilter]转换日期和/或时间时转换失败

  •  0
  • Kirsten  · 技术社区  · 2 年前

    我用XAF 21.2.5从框架升级到了.NetCore

    现在,如果我尝试使用以下ListViewFilter

     [ListViewFilter("Today",
            "[Created] >= LocalDateTimeToday()",
            "Today", true, Index = 0)]
    

    关于我的具有属性的业务对象

    public DateTime Created { get; set; }
    

    我出错了

      Microsoft.Data.SqlClient.SqlException
      HResult=0x80131904
      Message=Conversion failed when converting date and/or time from character string.
      Source=Core Microsoft SqlClient Data Provider
      StackTrace:
       at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
    

    这个 docs 表明这应该有效

    [更新]

    阅读后 this question 我开始试验

    modelBuilder.Entity<MyEntity>().Property(x => x.Created).HasColumnType("datetime");
    

    我正在搜索可为null的属性,以便映射所有日期时间属性。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Kirsten    2 年前

    解决方案是将以下内容添加到OnModelCreating

    modelBuilder.Entity<MyEntity>().Property(x => x.Created).HasColumnType("datetime");
    

    并仔细检查实体中的每个声明的属性,以确保我正确设置了它是否可以为null

    我得了int?错误地声明为int