次のエンティティがあります。
public class SampleClass
{
public int Id { get; set; }
public object Args {get; set; }
}
さまざまなタイプにすることができ、クエリ可能である必要がないためArgs
、データベースにjson文字列として保存したいと考えています。
次の回避策で問題が解決することはわかっています。
public class SampleClass
{
public int Id { get; set; }
public object Args { get { return Json.Deserialize(ArgsJson); } set { ArgsJson = Json.Serialize(value); } }
public string ArgsJson {get; set; }
}
しかし、モデルに関係のない情報を公開し、モデルに関係のないロジックが含まれているため、これはかなり醜いです。
私がやりたいことは、そのようなものです:
public class SampleClassMapper : EntityTypeConfiguration<SampleClass>
{
public SampleClassMapper()
{
this.Property(e => e.Args).MapAs<string>(arg => Json.Serialize(arg), str => Json.Deserialize(str));
}
}
そうするためのクールな方法はありますか?
(私は.Net 4.0をEntityFramework 5およびSql Server 2008で使用しています)