微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Linq2Db 的 NodaTime

如何解决使用 Linq2Db 的 NodaTime

如何在 Linq2Db 中配置 T4 POCO 生成生成使用 NodaTime 类型而不是 System.DateTime 的模型?

我将 Postgresql 与 Npgsql 一起使用。

解决方法

要替换标准 DateTime 类,您必须按以下方式修改 T4 模板:

// loading database schema
LoadPostgreSQLMetadata(...)

// modifying default mapping
foreach (var t in Tables.Values)
{
    foreach (var c in t.Columns.Values)
    {
        switch (c.Type)
        {
            case "DateTime"       : c.Type = "NodaTime.LocalDateTime";   break;
            case "DateTime?"      : c.Type = "NodaTime.LocalDateTime?";  break;
            case "DateTimeOffset" : c.Type = "NodaTime.OffsetDateTime";  break;
            case "DateTimeOffset?": c.Type = "NodaTime.OffsetDateTime?"; break;
        }
    }
}

// generating model
GenerateModel();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。