NodaTime with Linq2Db



如何在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();

最新更新