Gra*_*ler 40 sql-server entity-framework code-first ef-code-first
我试图将TimeSpan Code First属性映射到SQL服务器.Code First似乎在SQL中将其创建为Time(7).但是.Net中的TimeSpan可以处理超过24小时的更长时间,并且我需要存储超过24小时的事件长度.使用Code First处理此问题的最佳方法是什么?
Gra*_*ler 35
按我刚才的问题上如何时间跨度存储在SQL我被告知将其存储为秒或门票等到底,因为在SQL服务器中没有等效我没时间跨度列映射.我只是创建了一个第二个字段,它将TimeSpan转换为刻度并将其存储在数据库中.然后我阻止了存储TimeSpan
public Int64 ValidityPeriodTicks { get; set; }
[NotMapped]
public TimeSpan ValidityPeriod
{
get { return TimeSpan.FromTicks(ValidityPeriodTicks); }
set { ValidityPeriodTicks = value.Ticks; }
}
Run Code Online (Sandbox Code Playgroud)
如果您希望在EF Core中执行此操作,则可以使用" 价值转换",因为它更加清晰.在2.1中,您可以使用值转换和TimeSpanToTicksConverter透明地将时间跨度映射到数据库中的滴答.所以当然值得考虑EF Core(假设其他功能满足需求) - 可以在Framework 4.7项目中使用它,因此不需要切换到.Net Core.
| 归档时间: |
|
| 查看次数: |
11922 次 |
| 最近记录: |