53 lines
1.9 KiB
C#
53 lines
1.9 KiB
C#
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"/> datatype 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 AddDateOnlyConverters(this ModelConfigurationBuilder builder)
|
|
{
|
|
builder.Properties<DateOnly>()
|
|
.HaveConversion<DateOnlyConverter>()
|
|
.HaveColumnType("date");
|
|
builder.Properties<DateOnly?>()
|
|
.HaveConversion<NullableDateOnlyConverter>()
|
|
.HaveColumnType("date");
|
|
|
|
return builder;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Adds converters for the <see cref="TimeOnly"/> datatype 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 AddTimeOnlyConverters(this ModelConfigurationBuilder builder)
|
|
{
|
|
builder.Properties<TimeOnly>()
|
|
.HaveConversion<TimeOnlyConverter>()
|
|
.HaveColumnType("time");
|
|
builder.Properties<TimeOnly?>()
|
|
.HaveConversion<NullableTimeOnlyConverter>()
|
|
.HaveColumnType("time");
|
|
|
|
return builder;
|
|
}
|
|
}
|
|
}
|