示例#1
0
        private string GenerateEntityImplement(string name)
        {
            var pattern =
                @"// {EntityName}.cs
//
// Generated by Kuicker.Tools.EntityGenerator.
// {Today}

using System;
using System.ComponentModel;
using System.Runtime.Serialization;
using System.Collections.Generic;
using Kuicker;
using Kuicker.Data;

namespace {Namespace}
{
	/// <summary>
	/// {Comments}
	/// </summary>
	[Description(""{Comments}"")]
	[DataContract, Table]
	public partial class {EntityName} : Entity<{EntityName}>
	{
		#region constructor
		public {EntityName}()
			: base()
		{
		}
		#endregion

		#region IEntity
		#endregion

		#region static
		#endregion

		#region instance
		#endregion

		#region private
		#endregion

		#region event handler
		#endregion
	}
}";
            var now        = DateTime.Now.yyyy_MM_dd_HH_mm_ss_fff();
            var nameSpace  = txtNamespace.Text;
            var tableName  = name;
            var entityName = tableName
                             .TrimStart(txtTableTrimPrefix.Text);

            entityName = NamingFilter(entityName)
                         .AppendSuffix(txtTableAppendSuffix.Text);
            if (entityName.IsNullOrEmpty())
            {
                entityName = tableName;
            }

            var tableSchema = TableSchemas.FirstOrDefault(x =>
                                                          x.TableName == tableName
                                                          );

            var sb = new StringBuilder();

            sb.Append(pattern);
            sb
            .Replace(
                "{Comments}",
                tableSchema.Comments.AirBag(tableSchema.TableName)
                )
            .Replace("{Today}", now)
            .Replace("{Namespace}", nameSpace)
            .Replace("{EntityName}", entityName)
            .Replace("{TableName}", tableName);

            return(sb.ToString());
        }
示例#2
0
        private string GenerateEntitySchema(string name)
        {
            var pattern =
                @"// {EntityName}.cs
//
// Generated by Kuicker.Tools.EntityGenerator.
// {Today}

using System;
using System.ComponentModel;
using System.Runtime.Serialization;
using System.Collections.Generic;
using Kuicker;
using Kuicker.Data;

namespace {Namespace}
{
	public partial class {EntityName} : Entity<{EntityName}>
	{
		public override string __TableName
		{
			get
			{
				return ""{TableName}"";
			}
		}
{Properties}
	}
}";
            var now        = DateTime.Now.yyyy_MM_dd_HH_mm_ss_fff();
            var nameSpace  = txtNamespace.Text;
            var tableName  = name;
            var entityName = tableName
                             .TrimStart(txtTableTrimPrefix.Text);

            entityName = NamingFilter(entityName)
                         .AppendSuffix(txtTableAppendSuffix.Text);
            if (entityName.IsNullOrEmpty())
            {
                entityName = tableName;
            }

            var tableSchema = TableSchemas.FirstOrDefault(x =>
                                                          x.TableName == tableName
                                                          );

            var ef           = EnumCache.Get <DataFormat>();
            var sbProperties = new StringBuilder();

            foreach (var column in tableSchema.Columns)
            {
                var propertyName = column.ColumnName
                                   .TrimStart(txtColumnTrimPrefix.Text);
                propertyName = NamingFilter(propertyName)
                               .AppendSuffix(txtColumnAppendSuffix.Text);
                if (propertyName.IsNullOrEmpty())
                {
                    propertyName = column.ColumnName;
                }

                var columnSchema = tableSchema.Columns.FirstOrDefault(x =>
                                                                      x.ColumnName == column.ColumnName
                                                                      );
                if (columnSchema == null)
                {
                    continue;
                }

                if (sbProperties.Length > 0)
                {
                    sbProperties.AppendLine();
                }

                sbProperties.AppendFormat(@"
		/// <summary>
		/// {0}
		/// </summary>
		[Description(""{0}"")]
		[DataMember, Column(""{1}""){2}{3}]
		public {4} {5} {{ get; set; }}"        ,
                                          column.Comments.AirBag(column.ColumnName),
                                          column.ColumnName,
                                          tableSchema
                                          .IsPrimaryKey(column.ColumnName)
                                          .If(", PrimaryKey"),
                                          column
                                          .Nullable
                                          .If(", AllowDBNull"),
                                          columnSchema.ToTypeName(Formater),
                                          propertyName
                                          );
            }

            var sb = new StringBuilder();

            sb.Append(pattern);
            sb
            .Replace(
                "{Comments}",
                tableSchema.Comments.AirBag(tableSchema.TableName)
                )
            .Replace("{Today}", now)
            .Replace("{Namespace}", nameSpace)
            .Replace("{EntityName}", entityName)
            .Replace("{TableName}", tableName)
            .Replace("{Properties}", sbProperties.ToString());

            return(sb.ToString());
        }
示例#3
0
        private void lbxTables_SelectedIndexChanged(
            object sender, EventArgs e)
        {
            ListBox lbx = sender as ListBox;

            if (null == lbx)
            {
                return;
            }

            clbColumns.Items.Clear();
            txtCode.Text = string.Empty;
            string name = lbx.SelectedItem.ToString();

            if (name.IsNullOrEmpty())
            {
                return;
            }

            var obj = TableSchemas.FirstOrDefault(x =>
                                                  x.TableName == name
                                                  );

            if (null == obj)
            {
                return;
            }
            string columnPrefix     = string.Empty;
            bool   columnPrefixDone = false;

            foreach (var column in obj.Columns)
            {
                clbColumns.Items.Add(column.ColumnName, true);

                if (!columnPrefixDone)
                {
                    string[] parts = column.ColumnName.Split('_');
                    if (columnPrefix.IsNullOrEmpty())
                    {
                        if (parts.Length > 1)
                        {
                            columnPrefix = parts[0];
                        }
                        else
                        {
                            columnPrefixDone = true;
                        }
                    }
                    else
                    {
                        if (columnPrefix != parts[0])
                        {
                            columnPrefix = string.Empty;
                        }
                        else
                        {
                            columnPrefix += "_";
                        }
                        columnPrefixDone = true;
                    }
                }
            }

            RefreshTable(name);
        }