public NewErrorModel OukKeySave(Pks pks) { try { using (DDContext dataContext = new DDContext()) { TableInfo tableInfo = dataContext.TableInfo.Where(t => t.ID == pks.ColumnId).FirstOrDefault(); if (tableInfo.ColumnProperty == 0 || tableInfo.ColumnProperty == 1) { dataContext.Pks.Add(pks); dataContext.Pks.Add(new Pks() { ColumnId = pks.OutColumnId, OutColumnId = pks.ColumnId }); dataContext.SaveChanges(); } else { return(new NewErrorModel() { error = new Error(1, "bool类型的字段不能用于外键绑定!", "") { }, }); } } return(new NewErrorModel() { error = new Error(0, "保存成功!", "") { }, }); } catch (Exception) { throw; } }
public NewErrorModel OukKeyDel(int Id) { try { using (DDContext dataContext = new DDContext()) { Pks pks = dataContext.Pks.Find(Id); Pks pksPro = dataContext.Pks.Where(p => p.ColumnId == pks.OutColumnId).FirstOrDefault(); dataContext.Pks.Remove(pks); dataContext.Pks.Remove(pksPro); dataContext.SaveChanges(); } return(new NewErrorModel() { error = new Error(0, "保存成功!", "") { }, }); } catch (Exception) { throw; } }
public List <TableInfo> GetTables() { List <TableInfo> results = new List <TableInfo>(); SqlConnection conn = new SqlConnection(_connString); _logger.Log("Start Reading DB Tables: " + _databaseName, EventType.Info); _logger.Log(""); SqlCommand cmd = new SqlCommand(cmdStr.Replace("[catalog]", _databaseName), conn); try { conn.Open(); IDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); string lastTableName = ""; TableInfo ti = new TableInfo(); string[] Pks = new string[0]; while (dr.Read()) { var tableName = dr.GetString(0) + "." + dr.GetString(1); if (tableName != lastTableName) { ti = new TableInfo(); ti.Database = _databaseName; ti.Name = dr.GetString(1); ti.Schema = dr.GetString(0); if (!dr.IsDBNull(2)) { Pks = dr.GetString(2).Split(',').ToArray(); } else { Pks = new string[0]; } ti.Fields = new List <FieldInfo>(); lastTableName = tableName; if (_ignoreList.IgnoreTable(ti)) { _logger.Log("Reading Table: " + tableName + ", Ignored.", EventType.Warning); continue; } else { _logger.Log("Reading Table: " + tableName, EventType.None); } results.Add(ti); } if (ExistField(ti.Fields, new FieldInfo() { Name = dr.GetString(3) })) { _logger.Log("Duplicate Field " + dr.GetString(3), EventType.Error); } ti.Fields.Add(new FieldInfo() { Name = dr.GetString(3), Type = dr.GetString(4), Nullable = dr.GetInt32(5) == 1, IsPK = Pks.Contains(dr.GetString(3)) }); } dr.Close(); _logger.Log(""); _logger.Log("End Reading DB Tables: " + _databaseName, EventType.Info); } catch (Exception ex) { _logger.Log("Exception: " + ex.ToString(), EventType.Error); } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } } return(results); }