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?"); } Console.WriteLine("Connection OK ... Reading Server Version ..."); SqlVersion = Manager.RunPrimetivSelect<string>("SELECT SERVERPROPERTY('productversion')").FirstOrDefault(); Console.WriteLine("Server version is {0}", SqlVersion); Console.WriteLine("Reading Tables from {0} ...", databaseName); Tables = Manager.Select<TableInformations>().Select(s => new TableInfoModel(s, databaseName, Manager)).ToList(); Views = Manager.Select<ViewInformation>().Select(s => new TableInfoModel(s, databaseName, Manager)).ToList(); StoredProcs = Manager.Select<StoredProcedureInformation>().Select(s => new StoredPrcInfoModel(s)).ToList(); Console.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(); }
public TableInfoModel(TableInformations 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.RunPrimetivSelect(typeof(string), "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 List<IQueryParameter>() { 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; } } }
public FooTest() { var access = new DbAccessLayer(DbAccessType.MsSql, "Data Source=(localdb)\\Projects;Initial Catalog=Northwind;Integrated Security=True;"); var @select = access.Select<Foo>("SomeName"); }