/// <summary>
        /// 添加字段
        /// </summary>
        /// <param name="context"></param>
        /// <param name="model"></param>
        /// <param name="property"></param>
        public static void AddField(this DynamicModelDbContext context, RuntimeModelMeta model, RuntimeModelMeta.ModelPropertyMeta property)
        {
            using (DbConnection conn = context.Database.GetDbConnection())
            {
                if (conn.State != System.Data.ConnectionState.Open)
                {
                    conn.Open();
                }

                DbCommand addFieldCmd = conn.CreateCommand();
                addFieldCmd.CommandText = $"alert table {model.ClassName} add {property.PropertyName} ";

                switch (property.ValueType)
                {
                case "int":
                    addFieldCmd.CommandText += "int";
                    break;

                case "datetime":
                    addFieldCmd.CommandText += "datetime";
                    break;

                case "bool":
                    addFieldCmd.CommandText += "bit";
                    break;

                default:
                    addFieldCmd.CommandText += "nvarchar(max)";
                    break;
                }

                addFieldCmd.ExecuteNonQuery();
            }
        }
        /// <summary>
        /// 创建模型表(sql server)
        /// </summary>
        /// <param name="context"></param>
        /// <param name="model"></param>
        public static void CreateModel(this DynamicModelDbContext context, RuntimeModelMeta model)
        {
            DbConnection conn = context.Database.GetDbConnection();

            if (conn.State != System.Data.ConnectionState.Open)
            {
                conn.Open();
            }

            DbCommand createTableCmd = conn.CreateCommand();

            createTableCmd.CommandText  = $"create table {model.ClassName}";
            createTableCmd.CommandText += "(id int identity(1,1)";
            foreach (var p in model.GetProperties())
            {
                createTableCmd.CommandText += $",{p.PropertyName} ";
                switch (p.ValueType)
                {
                case "int":
                    createTableCmd.CommandText += "int";
                    break;

                case "datetime":
                    createTableCmd.CommandText += "datetime";
                    break;

                case "bool":
                    createTableCmd.CommandText += "bit";
                    break;

                case "timestamp":
                    createTableCmd.CommandText += "timestamp";
                    break;

                case "string":
                    if (p.Length != 0)
                    {
                        createTableCmd.CommandText += "nvarchar(" + p.Length + ")";
                    }
                    else
                    {
                        createTableCmd.CommandText += "nvarchar(max)";
                    }
                    break;

                default:
                    createTableCmd.CommandText += "nvarchar(max)";
                    break;
                }
            }

            createTableCmd.CommandText += ")";
            createTableCmd.ExecuteNonQuery();
        }
        /// <summary>
        /// 删除字段
        /// </summary>
        /// <param name="context"></param>
        /// <param name="model"></param>
        /// <param name="property"></param>
        public static void RemoveField(this DynamicModelDbContext context, RuntimeModelMeta model, string property)
        {
            using (DbConnection conn = context.Database.GetDbConnection())
            {
                if (conn.State != System.Data.ConnectionState.Open)
                {
                    conn.Open();
                }

                DbCommand removeFieldCmd = conn.CreateCommand();
                removeFieldCmd.CommandText = $"alert table {model.ClassName} DROP COLUMN  {property}";

                removeFieldCmd.ExecuteNonQuery();
            }
        }
 public HomeController(IRuntimeModelProvider privader, DynamicModelDbContext dbContext, ModelDbContext modeldbContext)
 {
     _privader       = privader;
     _dbContext      = dbContext;
     _modeldbContext = modeldbContext;
 }