我想保存一个实体的生产年份和月份。我不想保存月份的时间和日期。
我可以想出多种解决方案,到目前为止最好的两种是:
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; }
}
上的属性?
答案 0 :(得分:3)
您可以使用YYYYMM格式将其存储为单个整数。实体可以将未映射([NotMapped]
)的辅助方法公开给DateTime
和/或ValueTuple (year int, month int)
,以从EF查询中进行覆盖,尽管从EF查询中您需要使用单个映射值。 YYYYMM是可排序的,因此您可以有效地查询范围。