2017-10-03 17 views
0

私はJSONデータ型の列を含むテーブルをMySQLデータベースに持っています。その列に格納されているJSONデータを取得し、Dapperを使用してC#クラスにマップすることは可能ですか?以下は、データが列に格納される方法のサンプルJSONです。Dapperを使用してMySQL JSON列をマッピングする方法

[ 
     { 
      "ServerName": "", 
      "Priority": 1, 
      "FilesystemBasePath": "", 
      "IsAvailable": 1, 
      "ApplicationDocumentType": "" 
     }, 
     { 
      "ServerName": "", 
      "Priority": 2, 
      "FilesystemBasePath": "", 
      "IsAvailable": 1, 
      "ApplicationDocumentType": "" 
     } 
] 

データをC#のList<MyObject>タイプにマップします。

答えて

0

List<MyObject>のITypeHandlerを登録するか、プロパティの種類が何であっても登録します。

public class MyClass 
{ 
    public List<MyObject> MyObjects {get; set; 
} 

public class JsonTypeHandler: SqlMapper.ITypeHandler 
{ 
    public void SetValue(IDbDataParameter parameter, object value) 
    { 
     parameter.Value = JsonConvert.SerializeObject(value); 
    } 

    public object Parse(Type destinationType, object value) 
    { 
     return JsonConvert.DeserializeObject(value as string, destinationType); 
    } 
} 

SqlMapper.AddTypeHandler(typeof(List<MyObject>),new JsonTypeHandler()); 

した後、そのあなたはそれが適切にシリアライズとデシリアライズされるタイプList<MyObject>のプロパティにマップする列名を持っている場合。

関連する問題