petapoco的通用FetchDictionary方法



PetaPoco有这样的方法:

public List<T> Fetch<T>(string sql, params object[] args) 
    {
        return Query<T>(sql, args).ToList();
    }

我想创建一个这样的方法:

        public Dictionary<Guid, T> FetchDict<T>(string sql, params object[] args)
    {
//What goes here ?
        return Query<T>(sql, args).ToDictionary(x => ???, x => x);
    }

在上面的存根中,应该使用反射&使用PrimaryKey属性并将该字段设置为key。

figure out:

public Dictionary<K, T> FetchDict<K,T>(string sql, params object[] args)
    {   
        Type typ = typeof(T);
        var primKey = TableInfo.FromPoco(typ).PrimaryKey;
        var prop = typ.GetProperty(primKey);
        return Query<T>(sql, args).ToDictionary(x => (K)prop.GetValue(x), x => x);
    }

相关内容

  • 没有找到相关文章

最新更新