ServiceStack / Issues

Issue Tracker for the commercial versions of ServiceStack
11 stars 8 forks source link

OrmLite's Ensure() API and field aliases #730

Closed titobrasolin-ke closed 4 years ago

titobrasolin-ke commented 4 years ago

It seems that in some cases field aliases are ignored. The WhereExpression below in my opinion should be "WHERE (TheAlias>@0) AND (1=1)".

    public class AutoQueryService : Service
    {
        public IAutoQueryDb AutoQuery { get; set; }

        public object Any(MyClassQuery dto)
        {
            using (var db = AutoQuery.GetDb(dto, Request))
            {
                var q = AutoQuery.CreateQuery(dto, Request, db)
                    .Ensure(x => x.TheField > 0);
                Debug.Print("WhereExpression: {0}", q.WhereExpression); // -> "WhereExpression: WHERE (TheField>@0) AND (1=1)"

                return AutoQuery.Execute(dto, q, Request, db);
            }
        }
    }

    public class MyClass
    {
        public int Id { get; set; }
        [Alias("TheAlias")]
        public int TheField { get; set; }
    }

    public class MyClassQuery : QueryDb<MyClass> { }
mythz commented 4 years ago

This issue should now be resolved from this commit.

This change is available from v5.9.1 that's now available on MyGet.

thx for reporting!