public void CreateTable(DatabaseTableInfo tableinfo) { if (tableinfo == null) throw new ArgumentNullException("tableinfo"); DataContext.DatabaseTableInfoes.Add(tableinfo); DataContext.SaveChanges(); }
public void UpdateTable(DatabaseTableInfo tableinfo) { if (tableinfo == null) throw new ArgumentNullException("tableinfo"); DataContext.Entry<DatabaseTableInfo>(tableinfo); DataContext.SaveChanges(); }
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); } } }