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);
}