【问题标题】:Troubleshooting 'Column is null' issues using Postgres and EF core使用 Postgres 和 EF 核心解决“列为空”问题
【发布时间】:2021-03-20 09:27:15
【问题描述】:

一直在尝试解决我们的查询之一导致以下错误消息的问题:

System.InvalidCastException: Column is null at Npgsql.NpgsqlDataReader.GetFieldValue[T](Int32 ordinal) at Npgsql.NpgsqlDataReader.GetString(Int32 ordinal)

有什么方法可以确定它抱怨的是哪一列?通常我可以解决这个问题,但不幸的是,查询会遇到大量表,并且想知道是否有一些魔术代码可以指示当 EF 核心尝试将其推入模型时它在抱怨哪一列。

【问题讨论】:

  • 在代码运行时运行 SQL 跟踪,查看最后运行的 SQL 是什么。这可能是有问题的。
  • 执行psql中的语句,然后您将看到上下文和所有其他信息,这将有助于您定位错误。

标签: c# postgresql entity-framework-core


【解决方案1】:

如果数据类型是 DateTime,那么不要让它为空。 或者,如果您想返回 null,则允许 null。

public DateTime? ColumnName { get; set; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多