我的代码生成了以下动态 SQL 查询:
SELECT
"public"."member_contact"."member_id" AS MemberId
, "public"."member_contact"."contact_id" AS ContactId
, "public"."member_contact"."modified_by" AS ModifiedBy
, "public"."member_contact"."lm_prog" AS LmProg
, "public"."member_contact"."created_by" AS CreatedBy
, "public"."member_contact"."cr_prog" AS CrProg
, "public"."member_contact"."id" AS Id
, "public"."member_contact"."modified_date" AS ModifiedDate
, "public"."member_contact"."created_date" AS CreatedDate
FROM "public"."member_contact"
然后我通过 ServiceStack 服务处理程序方法运行它,如下所示:
var records = await Db.QueryAsync(sqlStatements.SelectStatement, p);
,返回 IEnumerable<dynamic>
。
我遇到的问题是
records
包含全部小写的属性名称(因此 memberid
而不是 MemberId
等)
如何强制
IEnumerable<dynamic>
根据 SQL 语句中列的命名返回属性名称?
QueryAsync
是 Dapper 的 API。
在 OrmLite 中,您可以使用以下方式执行自定义 SQL:
var rows = await Db.SqlListAsync<MemberContact>(sql);
动态结果集还列出了执行自定义 SQL 查询的其他方法。