SQLCe不支持TimeSpan,因此我需要以其他方式保存它。是否可以在某个地方定义默认转换,例如在DbContext中,还是我需要在存储库中手动处理此转换?正因为如此,我不喜欢更改实体类。
顺便说一句,我只保存
如果有一些巧妙的技巧,例子将是很好的。
最佳答案
我知道您说您不想修改您的实体,但是如果您首先使用代码,则通过修改实体非常简单:)
您可以定义一个未映射到数据库的属性,该属性使用另一个属性作为其后备存储。在此示例中,TickCount将保存在数据库中,但是其他所有内容都可以访问Span,从而将TickCount公开为TimeSpan结构。
public long TickCount { get; set; }
[NotMapped]
public TimeSpan Span {
get {
return new TimeSpan(TickCount);
}
set {
TickCount = value.Ticks;
}
}