Return OrmLite 中带有对象值的字典

Return Dictionary with Object Value in OrmLite

在 ServiceStack OrmLite 中是否可以 return 一个键值字典,其值是一个对象(class 或匿名类型)?

例如:

var q = db.From<Customers>()
          .Select(c => new { c.CustomerId, (c.FullName, c.Address) });

var list = db.Dictionary<int, object>(q);

在这种情况下,我希望 Dictionary 项目键为 CustomerId,值是具有两个属性的对象:FullNameAddress

我将使用 Newtonsoft.Json 将字典序列化为 JSON,以便通过键进行客户端查找。

你不能在 SqlExpression 中做元组投影,你会用它来 select 你想要的列:

var q = db.From<Customers>()
      .Select(c => new { c.CustomerId, c.FullName, c.Address });

那么就可以使用C# 7 Tuple syntax to select custom columns,例如:

var rows = db.Select<(int id, string name, string address)>(q);