ServiceStack SelectLazy <long> System.NullReferenceException </long>

时间:2014-08-20 17:09:04

标签: servicestack ormlite-servicestack

            using (IDbConnection db = dbFactory.OpenDbConnection()) {
            List<long> x = db.SelectLazy<long>(
                "SELECT Id FROM MyTable").ToList();
            }

为什么x null?

当我使用Select而不是SelectLazy时,或者当我在整行上使用SelectLazy而不仅仅是Id时,它会起作用。

1 个答案:

答案 0 :(得分:2)

在OrmLite中,您使用不同的API来匹配您之后的结果,例如:

  • Select* API返回List<MyTable>
  • Column* API用于返回一列字段值,例如List<long>
  • Single*用于返回单行的API,例如Table
  • Scalar* API用于返回单个字段值,例如long

因此,要选择一列作为您使用db.Column的字段列表,例如:

var results = db.Column<long>(db.From<MyTable>().Select(x => x.Id));

这些还具有Raw Sql*等价物,例如:

var results = db.SqlColumn<long>("SELECT Id FROM MyTable");