仅存储年和月的实体框架类型

时间:2018-11-22 10:16:46

标签: c# entity-framework tsql datetime

我想保存一个实体的生产年份和月份。我不想保存月份的时间和日期。

我可以想出多种解决方案,到目前为止最好的两种是:

async

public class Product
{
    private DateTime _productionMonth;

    public DateTime ProductionMonth
    {
        get => _productionMonth;
        set => _productionMonth = new DateTime(value.Year, value.Month, 1);
    }
}

但是我觉得没有任何解决方案是完美的解决方案...

有没有更好的解决方案?也许是public class Product { public int Year { get; set; } public int Month { get; set; } } 上的属性?

1 个答案:

答案 0 :(得分:3)

您可以使用YYYYMM格式将其存储为单个整数。实体可以将未映射([NotMapped])的辅助方法公开给DateTime和/或ValueTuple (year int, month int),以从EF查询中进行覆盖,尽管从EF查询中您需要使用单个映射值。 YYYYMM是可排序的,因此您可以有效地查询范围。