44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
#if NET6_0_OR_GREATER
|
|
|
|
using System;
|
|
using AMWD.Common.EntityFrameworkCore.Converters;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace AMWD.Common.EntityFrameworkCore.Extensions
|
|
{
|
|
/// <summary>
|
|
/// Extensions for the <see cref="ModelConfigurationBuilder"/> of entity framework core.
|
|
/// </summary>
|
|
public static class ModelConfigurationBuilderExtensions
|
|
{
|
|
/// <summary>
|
|
/// Adds converters for the <see cref="DateOnly"/> and <see cref="TimeOnly"/> datatypes introduced with .NET 6.0.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// As of 2022-06-04 only required for Microsoft SQL server on .NET 6.0.
|
|
/// </remarks>
|
|
/// <param name="builder">The <see cref="ModelConfigurationBuilder"/> instance.</param>
|
|
/// <returns>The <see cref="ModelConfigurationBuilder"/> instance after applying the converters.</returns>
|
|
public static ModelConfigurationBuilder AddDateOnlyTimeOnlyConverters(this ModelConfigurationBuilder builder)
|
|
{
|
|
builder.Properties<DateOnly>()
|
|
.HaveConversion<DateOnlyConverter>()
|
|
.HaveColumnType("date");
|
|
builder.Properties<DateOnly?>()
|
|
.HaveConversion<NullableDateOnlyConverter>()
|
|
.HaveColumnType("date");
|
|
|
|
builder.Properties<TimeOnly>()
|
|
.HaveConversion<TimeOnlyConverter>()
|
|
.HaveColumnType("time");
|
|
builder.Properties<TimeOnly?>()
|
|
.HaveConversion<NullableTimeOnlyConverter>()
|
|
.HaveColumnType("time");
|
|
|
|
return builder;
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|