ServiceStack OrmLite CustomSelect 不工作?

ServiceStack OrmLite CustomSelect not working?

我正在尝试使用此处记录的功能: https://github.com/ServiceStack/ServiceStack.OrmLite#custom-sql-customizations

我是这样使用它的:

var q = Db.From<MemberAccess>().LeftJoin<Member>();
return Db.Select<MemberResponse>(q);

响应对象:

public class MemberResponse
{
    public Guid Id { get; set; }

    public string MemberFirstName { get; set; }

    public string MemberLastName { get; set; }

    public string MemberEmail { get; set; }

    [Default(OrmLiteVariables.SystemUtc)]
    public string AccessedOn { get; set; }

    [CustomSelect("CONCAT(LEFT(Member.FirstName, 1),LEFT(Member.LastName,1))")]
    public string MemberInitial { get; set; }
}

似乎我在 CustomSelect 中输入的内容没有被使用。
也许,我没有正确使用它?
另外,默认属性也不起作用。
我试过了,因为它是 doco 的一个例子。

任何想法将不胜感激。

提前致谢。

[CustomSelect] 仅适用于来源 table。选择自定义类型的结果用于将返回的结果集映射到 MemberResponse 类型,它 对执行的查询 没有任何影响。

[Default(OrmLiteVariables.SystemUtc)] 类似,它用于在创建 table 时定义默认值,仅在 创建列定义 时使用,所以它是仅对来源 Table 类型有用。

这两个属性只应添加到源 MemberAccess 上才能生效,您映射的 MemberResponse 可以在没有任何属性的情况下访问,例如:

public class MemberResponse
{
    public Guid Id { get; set; }

    public string MemberFirstName { get; set; }

    public string MemberLastName { get; set; }

    public string MemberEmail { get; set; }

    public string AccessedOn { get; set; }

    public string MemberInitial { get; set; }
}

Sql.Custom() API

在 v4.5.5 中添加的新 Sql.Custom() API available on MyGet 将允许您 select 自定义 SQL 片段,例如:

var q = Db.From<MemberAccess>().LeftJoin<Member>()
  .Select<MemberAccess,Member>((a,m) => new {
    Id = a.Id,
    MemberFirstName = m.FirstName,
    MemberLastName = m.LastName,
    MemberEmail = m.Email,
    MemberInitial = Sql.Custom("CONCAT(LEFT(Member.FirstName,1),LEFT(Member.LastName,1))")
  });
return Db.Select<MemberResponse>(q);