Exemplo n.º 1
0
        public override LambdaPathType ParsePath(string fullPath)
        {
            int index = fullPath.IndexOf(".", StringComparison.Ordinal);

            if (index == -1)
            {
                if (fullPath == singleEntityName)
                {
                    return(LambdaPathType.Parameter);
                }
                else
                {
                    return(state.ParsePath(fullPath));
                }
            }
            string name = fullPath.Substring(0, index);
            string path = fullPath.Substring(index);

            if (singleEntityName != name)
            {
                return(state.ParsePath(fullPath));
            }
            if (singleEntityMap.CheckIsField(path))
            {
                return(LambdaPathType.Field);
            }
            else if (singleEntityMap.CheckIsRelateEntity(path))
            {
                return(LambdaPathType.RelateEntity);
            }
            else if (singleEntityMap.CheckIsEntityCollection(path))
            {
                return(LambdaPathType.RelateCollection);
            }
            else
            {
                return(LambdaPathType.None);
            }
        }
Exemplo n.º 2
0
        public override LambdaPathType ParsePath(string fullPath)
        {
            int index = fullPath.IndexOf(".", StringComparison.Ordinal);

            if (index == -1)
            {
                if (fullPath == singleEntityName)
                {
                    return(LambdaPathType.Parameter);
                }
                else
                {
                    throw new LambdaParseException(LambdaParseMessage.ExpressionFieldPathError, fullPath);
                }
            }
            string name = fullPath.Substring(0, index);
            string path = fullPath.Substring(index);

            if (singleEntityName != name)
            {
                throw new LambdaParseException(LambdaParseMessage.ExpressionFieldPathNotExists, fullPath);
            }
            if (singleEntityMap.CheckIsField(path))
            {
                return(LambdaPathType.Field);
            }
            else if (singleEntityMap.CheckIsRelateEntity(path))
            {
                return(LambdaPathType.RelateEntity);
            }
            else if (singleEntityMap.CheckIsEntityCollection(path))
            {
                return(LambdaPathType.RelateCollection);
            }
            else
            {
                return(LambdaPathType.None);
            }
        }