我创建了一个常量文件。
public static class SqlKeyWords
{
public const string CurrentUserDefault = "CURRENT_USER"; /* SqlServer, PostGres */
//public const string CurrentTimeStamp = "GETUTCDATE()"; /* SqlServer */
public const string CurrentTimeStamp = "timezone('utc', now())"; /* PostGres */
}
然后我指的是
single source of truth
在我的“地图”中:
using System.Diagnostics.CodeAnalysis;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace MyCompany.MyEfLayer.OrmMaps
{
[ExcludeFromCodeCoverage]
public class MyThingMap : IEntityTypeConfiguration<MyThingEntity>
{
public void Configure(EntityTypeBuilder<MyThingEntity> builder)
{
builder.Property(cn => cn.LastUpdated).HasColumnName("LastUpdatedColumn");
builder.Property(dvsql => dvsql.LastUpdated).HasDefaultValueSql(SqlKeyWords.CurrentTimeStamp);
builder.Property(req => req.LastUpdated).IsRequired();
}
}
}