在OrmLite中返回带有对象值的字典

时间:2018-10-15 06:34:04

标签: ormlite-servicestack

在ServiceStack OrmLite中是否可以返回键值字典,该键值字典的值是对象(类或匿名类型)?

例如:

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,以通过密钥进行客户端查找。

1 个答案:

答案 0 :(得分:2)

您无法在SqlExpression中进行元组投影,请使用它来选择所需的列:

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