Dapperを使用してMySQL JSON列をマップする方法

.net c# dapper json mysql

質問

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

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

私はデータをC#のList<MyObject>型にマップしたい。

人気のある回答

List<MyObject> ITypeHandler、またはプロパティの種類が何であれ、それを登録しList<MyObject>

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>型のプロパティにマップされた列名がある場合、それは適切にシリアル化されてデシリアライズされます。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow