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;
     }
 }
Exemplo n.º 3
0
        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);
        }