예제 #1
0
        public void CreateTable(DatabaseTableInfo tableinfo)
        {
            if (tableinfo == null)
                throw new ArgumentNullException("tableinfo");

            DataContext.DatabaseTableInfoes.Add(tableinfo);
            DataContext.SaveChanges();
        }
예제 #2
0
        public void UpdateTable(DatabaseTableInfo tableinfo)
        {
            if (tableinfo == null)
                throw new ArgumentNullException("tableinfo");

            DataContext.Entry<DatabaseTableInfo>(tableinfo);
            DataContext.SaveChanges();
        }
예제 #3
0
        public void InitialDatabase(int databaseId, string connectionString, bool isCascade = false)
        {
            if (string.IsNullOrEmpty(connectionString))
                throw new ArgumentNullException("connectionString");

            //get tables info
            var tableinfos = DBHelper.GetAllTableInfomations(connectionString);
            var tables = this.GetAllTablesByDatabaseId(databaseId);

            //if not exist,then create,not update old data
            foreach (var item in tableinfos)
            {
                int targetTableId;
                if (tables.Count(i => i.Name == item.Name) == 0)
                {
                    DatabaseTableInfo tab = new DatabaseTableInfo();
                    tab.ChineseName = item.CName;
                    tab.CreationTime = DateTime.Now;
                    tab.DatabaseInfoID = databaseId;
                    tab.LastUpdateTime = DateTime.Now;
                    tab.Name = item.Name;

                    this.CreateTable(tab);

                    targetTableId = tab.ID;
                }
                else
                {
                    targetTableId = tables.Where(i => i.Name == item.Name).First().ID;
                }

                //cascade initial column
                if (isCascade)
                {
                    this.InitialTable(targetTableId, connectionString);
                }
            }
        }