예제 #1
0
 protected virtual Func<PomonaContext, PomonaResponse> ResolveGetById(GetByIdRoute route,
                                                                      ResourceType resourceType)
 {
     var idProp = route.IdProperty;
     var idType = idProp.PropertyType;
     return pr =>
     {
         var segmentValue = pr.Node.PathSegment.Parse(idType);
         var segmentExpression = Ex.Const(segmentValue, idType);
         var whereExpression = pr.Node.Parent
                                 .Query()
                                 .WhereEx(ex => ex.Apply(idProp.CreateGetterExpression) == segmentExpression);
         var queryableResult = whereExpression.WrapActionResult(QueryProjection.FirstOrDefault);
         return new PomonaResponse(pr, queryableResult);
     };
 }
예제 #2
0
        protected virtual Func <PomonaContext, PomonaResponse> ResolveGetById(GetByIdRoute route,
                                                                              ResourceType resourceType)
        {
            var idProp = route.IdProperty;
            var idType = idProp.PropertyType;

            return(pr =>
            {
                var segmentValue = pr.Node.PathSegment.Parse(idType);
                var segmentExpression = Ex.Const(segmentValue, idType);
                var whereExpression = pr.Node.Parent
                                      .Query()
                                      .WhereEx(ex => ex.Apply(idProp.CreateGetterExpression) == segmentExpression);
                var queryableResult = whereExpression.WrapActionResult(QueryProjection.FirstOrDefault);
                return new PomonaResponse(pr, queryableResult);
            });
        }