예제 #1
0
        private Method ExtendDeleteByPrimaryKeysMethod(Model model)
        {
            Method method = new Method
            {
                Name = "DeleteBy" + MappingExtenderHelper.GetPrimaryKeyNamesConnectedWithAnd(model, true),
                // TODO: Embed string into resource file later.
                Description = string.Format(CultureInfo.InvariantCulture, "Delete {0}s by primary keys. (Auto generated)", model.Name),
                CommandType = CommandType.Text,
                MethodType  = MethodType.ExecuteNonQuery,
            };

            // Add parameters.
            foreach (var property in model.Properties)
            {
                if (property.IsPrimaryKey && !property.IsExtended)
                {
                    method.Parameters.Add(MappingExtenderHelper.PropertyToParameter(provider, property, true));
                }
            }

            // Add return result parameter.
            //method.Parameters.Add(MappingExtenderHelper.BuildReturnResultParameter(provider));

            // Add result.
            //method.Results.Add(MappingExtenderHelper.BuildReturnResult(provider));

            return(method);
        }
예제 #2
0
        private Method ExtendGetByPrimaryKeyMethod(Model model)
        {
            if (model.IsView)
            {
                return(null);
            }

            Method method = new Method
            {
                Name        = "GetBy" + MappingExtenderHelper.GetPrimaryKeyNamesConnectedWithAnd(model),
                Description = string.Format(CultureInfo.InvariantCulture, "Get {0} item by primary key. (Auto generated)", model.Name),
                CommandType = CommandType.Text,
                MethodType  = MethodType.ExecuteReader
            };

            // Add parameters.
            foreach (var property in model.Properties)
            {
                if (property.IsPrimaryKey)
                {
                    method.Parameters.Add(MappingExtenderHelper.PropertyToParameter(provider, property));
                }
            }

            // Add result.
            method.Results.Add(
                new Result
            {
                Name              = model.Name + "Model",
                Type              = string.Format(CultureInfo.InvariantCulture, "Models.{0}.{1}Model", model.Namespace, model.Name),
                Description       = model.Name + " Model.",
                IsOutputParameter = false
            });

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("SELECT");
            sb.AppendLine("FROM");

            foreach (var property in model.Properties)
            {
            }

            sb.AppendLine();
            sb.AppendLine("WHERE");

            foreach (var property in model.Properties)
            {
                if (property.IsPrimaryKey)
                {
                    sb.AppendFormat("\t{0}.{1} = @{1} AND", model.MappingName, property.Name);
                    sb.AppendLine();                     // Environment.NewLine
                }
            }

            sb.Length = sb.Length - " AND".Length - Environment.NewLine.Length;
            sb.AppendLine("\t{0} = @{0}");

            return(method);
        }