EF 4.1 代码优先 SqlCe 和 DateTimeOffset
我有一个像这样的实体:
public class EventItem
{
public int Id { get; set; }
public int Vn { get; set; }
public DateTimeOffset EventDate { get; set; }
...
}
..然后使用 EF Fluent API 来构造数据库:
public class EventItemConfiguration : EntityTypeConfiguration<EventItem>
{
public CatalystItemConfiguration()
{
ToTable("events");
HasKey(key => key.Id);
Property(item => item.Id).HasColumnName("event_id").HasColumnType("int");
Property(item => item.Vn).HasColumnName("event_vn").HasColumnType("int").IsRequired().IsConcurrencyToken();
Property(item => item.EventDate).HasColumnName("event_date").HasColumnType("datetimeoffset").IsRequired();
....
}
}
现在这一切在与 SQL 2008 对话时都有效。为了测试,我使用 SQL CE 4.0,因为 Sql CE 不支持 datetimeoffset,所以上面的代码属于堆。
要使其适用于 Sql 2008 和 Sql CE,我有哪些选择?
I have an entity like:
public class EventItem
{
public int Id { get; set; }
public int Vn { get; set; }
public DateTimeOffset EventDate { get; set; }
...
}
..and then use EF fluent API to construct the db:
public class EventItemConfiguration : EntityTypeConfiguration<EventItem>
{
public CatalystItemConfiguration()
{
ToTable("events");
HasKey(key => key.Id);
Property(item => item.Id).HasColumnName("event_id").HasColumnType("int");
Property(item => item.Vn).HasColumnName("event_vn").HasColumnType("int").IsRequired().IsConcurrencyToken();
Property(item => item.EventDate).HasColumnName("event_date").HasColumnType("datetimeoffset").IsRequired();
....
}
}
Now this all works when talking to SQL 2008. For testing I use SQL CE 4.0 and because Sql CE doesnt support datetimeoffset, the code above falls in a heap.
What are my options in getting this to work for Sql 2008 and Sql CE?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将其保存在 2 个单独的字段中:UtcEventDate 和 TimeZone:
Save it in 2 separate fields, UtcEventDate and TimeZone: