Пример #1
0
        public List <TableEntity> GetRemainTable(IList <TableEntity> datasource
                                                 , string ConnectionName, string DbName)
        {
            var config = ConfigureModel.Find(ConnectionName);

            using (DbContext db = new DbContext(config))
            {
                var exists  = datasource.Select(s => s.Object_id);
                var _tables = db.GetTables().Where(p =>
                                                   !exists.Contains(p.Object_id))
                              .OrderBy(P => P.Table_Name).ToList();
                if (_tables.Count > 0)
                {
                    var _columns = db.GetColumns(_tables.Select(p => p.Table_Name).ToArray());
                    foreach (var item in _tables)
                    {
                        item.Object_id = _columns.First().Object_id;
                        var columns = _columns.Where(p => p.Table == item.Table_Name);
                        item.Columns = new BindingList <ColumnEntity>(
                            columns.ToList());
                    }
                    return(_tables);
                }
                return(null);
            }
        }
Пример #2
0
 public static IEnumerable <ConnectionEntity> GetDefaultConnectionList()
 {
     if (Connections == null)
     {
         ConfigureModel model = new ConfigureModel();
         Connections = model.GetConnectionList(Configure.DEFAULT_CONNECTION_CONFIG_NAME).ToList();
     }
     return(Connections);
 }
Пример #3
0
 public static ConnectionEntity Find(string ConnectionName, string FilePath = "")
 {
     if (string.IsNullOrEmpty(FilePath))
     {
         return(GetDefaultConnectionList().FirstOrDefault(p => p.ConnectionName == ConnectionName));
     }
     else
     {
         ConfigureModel model = new ConfigureModel();
         return(model.GetConnectionList(FilePath).FirstOrDefault(p => p.ConnectionName == ConnectionName));
     }
 }
Пример #4
0
        public void SyncExistsTable(ProjectEntity project, Func <Delegate, object> WinUIthread)
        {
            var _config = ConfigureModel.Find(project.ConnectionName);

            using (DbContext db = new DbContext(_config))
            {
                var _objectid  = project.Tables.Select(t => t.Object_id);
                var _tablename = project.Tables.Select(t => t.Table_Name);
                this.OnNotify("Get table data....");
                var tables = db.GetTables().Where(p =>
                                                  _objectid.Contains(p.Object_id) ||
                                                  _tablename.Contains(p.Table_Name));
                this.OnNotify("Get column data....");
                List <ColumnEntity> columns =
                    db.GetColumns(Object_id: project.Tables.Select(t => t.Object_id).ToArray());
                this.OnNotify("Begin remove table....");
                //remove table
                var removetables = project.Tables.Select(p => p.Object_id).ToList().Except(
                    tables.Select(p => p.Object_id).ToList()
                    );
                for (int i = 0; i < project.Tables.Count; i++)
                {
                    if (removetables.Contains(project.Tables[i].Object_id))
                    {
                        WinUIthread.Invoke(new Action(() =>
                        {
                            project.Tables.RemoveAt(i);
                        }));
                    }
                }
                this.OnNotify("Begin modify table ....");
                foreach (var item in project.Tables)
                {
                    this.OnNotify("Sync " + item.Table_Name);
                    this.ModifiyTableSchema(columns, item, WinUIthread, iswithoutdesc: true);
                }
                this.OnNotify("Complete.");
            }
        }