如何告诉实体框架如何保存自定义类型的实例(可以存储为标量)

Lev*_*der 7 entity-framework nodatime

我的一个实体类可以作为BIGINT存储在sql server数据库中.我的问题是:如何获取实体框架上下文以了解如何存储和检索实体类的实例?

更多详情.我正在使用Noda Time,它可以表示比SQL或.NET datetime(更多)更广泛的日期范围(并且它是甜点顶部).我的实体类,Happening,是NodaTime的Instant类的包装器.我可以从一个长的设置发生的事情,并得到从发生长着像.SetFromLong(长即时)和.ToLong()的方法.

目前我的模型正在工作,保存包含dot net DateTime类型属性的类.如果我想使用我的自定义类型"Happening"的属性,我如何告诉Entity Framework如何保存它们?

如果我正在阅读这篇关于建模和制图的文章我是在正确的轨道上还是错过了更简单的东西?

http://msdn.microsoft.com/en-us/library/bb896343.aspx

我正在使用实体框架4.

Not*_*ple 7

我建议你做的是在你的实体上添加2个属性NodaTime和long,并在你的EF模型中使用[NotMapped]排除你的NodaTime属性,然后在你的getter/setter中更新long.

public class MyEntity{
   public long TimeAsLong{get;set;}
   [NotMapped]
   public Happening {
      get{
        return new Happening().SetFromLong(TimeAsLong);
      }
      set {
         TimeAsLong = value.ToLong();
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

这样做的结果是long存储在db中,但你可以通过NodaTime在类上访问它