私はCodeFirstクラス/テーブルを持っており、フィールドの1つはstring/nvarchar型を持っています。この文字列は、MyClassインスタンスのJSON表現です。MyClassインスタンスのみを使用してコードで操作したいのですが、データベースに文字列(JSON)として保存します。私のテーブルが次のようになっているとしましょう。
public class Message
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public string JsonDefinition { get; set; }
}
こんな感じにしたい
public class Message
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
[JSON]
public MyClass JsonDefinition { get; set; }
}
ここで、JSONは、フィールドをMyClassインスタンスのシリアル化された文字列として格納するようにEFに指示するカスタム属性です。同時に、EFと表示されます。「エンティティをプルしたら、JsonDefinition文字列をMyClassの逆シリアル化されたインスタンスに置き換えます」
既存のEF4メカニズムで達成することは可能ですか?もしそうなら、どのように?
前もって感謝します。
編集:MyClassは、辞書またはその他の複合型にすることができます。