2016-04-18 7 views
1

petapoco私は1つのプロパティマップ辞書プロパティは

public class PupilCache { 
    public int Id { get; set; } 
    public DateTime CreateDate { get; set; } 
    public string Name { get; set; } 
    public string Username { get; set; } 
    public string Email { get; set; } 
    public Dictionary<string, object> Properties { get; set; } 
} 

として辞書を持っているモデルがあり、この辞書のキーは、SQLに参加するテーブルのすべての列です。ペタポコでこれを1つのクエリで取得することは可能ですか?

答えて

0

ここにPetaPocoの管理者がいます。はい、これは、Pocoの関係を設定するためのコールバックを提供するfetchメソッドを使用して可能になります。ただし、PetaPocoがKey Value列をDBからPoco(必須)にマップできるように、Pocoを提供する必要があります。

db.Fetch<PupilCache, KeyValuePoco, PupilCache>((pc, kv) => pc.Properties.Add(kv.Key, kv.Value), "query"); 

この

/// <summary> 
    ///  Perform a multi-poco fetch 
    /// </summary> 
    /// <typeparam name="T1">The first POCO type</typeparam> 
    /// <typeparam name="T2">The second POCO type</typeparam> 
    /// <typeparam name="TRet">The returned list POCO type</typeparam> 
    /// <param name="cb">A callback function to connect the POCO instances, or null to automatically guess the relationships</param> 
    /// <param name="sql">The SQL query to be executed</param> 
    /// <param name="args">Arguments to any embedded parameters in the SQL</param> 
    /// <returns>A collection of POCO's as a List</returns> 
    List<TRet> Fetch<T1, T2, TRet>(Func<T1, T2, TRet> cb, string sql, params object[] args); 

を参照してください。