コード例 #1
0
        public void CreateEntrys(string connection, string outputPath, string database)
        {
            TargetDir = outputPath;
            Manager   = new DbAccessLayer(DbAccessType.MsSql, connection);
            bool checkDatabase;

            try
            {
                checkDatabase = Manager.CheckDatabase();
            }
            catch (Exception)
            {
                checkDatabase = false;
            }

            if (!checkDatabase)
            {
                throw new Exception("Database not accessible. Maybe wrong Connection or no Selected Database?");
            }
            var databaseName = string.IsNullOrEmpty(Manager.Database.DatabaseName) ? database : Manager.Database.DatabaseName;

            if (string.IsNullOrEmpty(databaseName))
            {
                throw new Exception("Database not exists. Maybe wrong Connection or no Selected Database?");
            }
            WinConsole.WriteLine("Connection OK ... Reading Server Version ...");

            SqlVersion = Manager.RunSelect <string>(Manager.Database.CreateCommand("SELECT SERVERPROPERTY('productversion')")).FirstOrDefault();

            WinConsole.WriteLine("Server version is {0}", SqlVersion);

            WinConsole.WriteLine("Reading Tables from {0} ...", databaseName);

            Tables = Manager.Select <TableInformations>()
                     .ToArray()
                     .AsParallel()
                     .Select(s => new TableInfoModel(s, databaseName, new DbAccessLayer(DbAccessType.MsSql, connection)))
                     .ToList();

            Views = Manager.Select <ViewInformation>()
                    .ToArray()
                    .AsParallel()
                    .Select(s => new TableInfoModel(s, databaseName, new DbAccessLayer(DbAccessType.MsSql, connection)))
                    .ToList();

            StoredProcs = Manager.Select <StoredProcedureInformation>()
                          .Select(s => new StoredPrcInfoModel(s))
                          .ToList();

            WinConsole.WriteLine(
                "Found {0} Tables, {1} Views, {2} Procedures ... select a Table to see Options or start an Action", Tables.Count(),
                Views.Count(), StoredProcs.Count());
            Enums = new List <Dictionary <int, string> >();
            RenderMenu();
        }
コード例 #2
0
ファイル: TableInfoModel.cs プロジェクト: radtek/DataAccess
        public TableInfoModel(ITableInformations info, string database, DbAccessLayer db)
        {
            CreateSelectFactory = true;
            Info        = info;
            Database    = database;
            ColumnInfos = db.Select <ColumnInfo>(new object[] { Info.TableName, database }).Select(s => new ColumInfoModel(s)).ToList();

            var firstOrDefault = db.RunSelect(typeof(string),
                                              db.Database.CreateCommandWithParameterValues("SELECT COLUMN_NAME " +
                                                                                           "FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc " +
                                                                                           "JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu " +
                                                                                           "ON tc.CONSTRAINT_NAME = ccu.Constraint_name " +
                                                                                           "WHERE tc.CONSTRAINT_TYPE = 'Primary Key' " +
                                                                                           "AND tc.TABLE_CATALOG = @database " +
                                                                                           "AND tc.TABLE_NAME = @tableName",
                                                                                           new QueryParameter("tableName", info.TableName),
                                                                                           new QueryParameter("database", Database)
                                                                                           )).FirstOrDefault() as string;

            var columInfoModel = ColumnInfos.FirstOrDefault(s => s.ColumnInfo.ColumnName == firstOrDefault);

            if (columInfoModel != null)
            {
                columInfoModel.PrimaryKey = true;
            }


            var forgeinKeyDeclarations = db.Select <ForgeinKeyInfoModel>(new object[] { info.TableName, database });

            foreach (var item in ColumnInfos)
            {
                var fod = forgeinKeyDeclarations.FirstOrDefault(s => s.SourceColumn == item.ColumnInfo.ColumnName);
                if (fod != null)
                {
                    item.ForgeinKeyDeclarations = fod;
                }
            }
        }
コード例 #3
0
 public string GetVersion()
 {
     return(_db.RunSelect <string>(_db.Database.CreateCommand("SELECT SERVERPROPERTY('productversion')"))
            .FirstOrDefault());
 }