本文整理汇总了C#中IRepository.GetAllTableNames方法的典型用法代码示例。如果您正苦于以下问题:C# IRepository.GetAllTableNames方法的具体用法?C# IRepository.GetAllTableNames怎么用?C# IRepository.GetAllTableNames使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IRepository
的用法示例。
在下文中一共展示了IRepository.GetAllTableNames方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetDescriptions
public List<DbDescription> GetDescriptions(IRepository repository)
{
var list = new List<DbDescription>();
string res = string.Empty;
var tlist = repository.GetAllTableNames();
if (tlist.Contains(tableName))
{
var ds = repository.ExecuteSql(selectScript);
if (ds.Tables.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
var dbDesc = new DbDescription();
dbDesc.Object = row[0] == DBNull.Value ? null : row[0].ToString();
dbDesc.Parent = row[1] == DBNull.Value ? null : row[1].ToString();
dbDesc.Description = row[2] == DBNull.Value ? null : row[2].ToString();
list.Add(dbDesc);
}
}
}
return list;
}
示例2: Init
private void Init(IRepository repository, string outFile)
{
_outFile = outFile;
_repository = repository;
_sbScript = new StringBuilder(10485760);
_tableNames = _repository.GetAllTableNames();
_allColumns = _repository.GetAllColumns();
_allForeignKeys = repository.GetAllForeignKeys();
_allPrimaryKeys = repository.GetAllPrimaryKeys();
if (!repository.IsServer())
_allIndexes = repository.GetAllIndexes();
string scriptEngineBuild = AssemblyFileVersion;
if (_repository.IsServer())
{
// Check if datatypes are supported when exporting from server
// Either they can be converted, are supported, or an exception is thrown (if not supported)
// Currently only sql_variant is not supported
foreach (Column col in _allColumns)
{
col.CharacterMaxLength = Helper.CheckDateColumnLength(col.DataType, col);
col.DateFormat = Helper.CheckDateFormat(col.DataType);
// Check if the current column points to a unique identity column,
// as the two columns' datatypes must match
bool refToIdentity = false;
Dictionary<string, Constraint> columnForeignKeys = new Dictionary<string, Constraint>();
// Fix for multiple constraints with same columns
var _tableKeys = _allForeignKeys.Where(c => c.ConstraintTableName == col.TableName);
foreach (var constraint in _tableKeys)
{
if (!columnForeignKeys.ContainsKey(constraint.Columns.ToString()))
{
columnForeignKeys.Add(constraint.Columns.ToString(), constraint);
}
}
if (columnForeignKeys.ContainsKey(string.Format("[{0}]", col.ColumnName)))
{
var refCol = _allColumns.Where(c => c.TableName == columnForeignKeys[string.Format("[{0}]", col.ColumnName)].UniqueConstraintTableName
&& string.Format("[{0}]", c.ColumnName) == columnForeignKeys[string.Format("[{0}]", col.ColumnName)].UniqueColumnName).FirstOrDefault();
if (refCol != null && refCol.AutoIncrementBy > 0)
{
refToIdentity = true;
}
}
col.ServerDataType = col.DataType;
// This modifies the datatype to be SQL Compact compatible
col.DataType = Helper.CheckDataType(col.DataType, col, refToIdentity, _preserveDateAndDateTime2);
}
}
_sbScript.AppendFormat("-- Script Date: {0} {1} - ErikEJ.SqlCeScripting version {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), scriptEngineBuild);
_sbScript.AppendLine();
if (!string.IsNullOrEmpty(_outFile) && !_repository.IsServer())
{
GenerateDatabaseInfo();
}
//if (!string.IsNullOrEmpty(_outFile) && _sqlite)
//{
// _sbScript.AppendLine("SELECT 1;");
// _sbScript.AppendLine("PRAGMA foreign_keys=OFF;");
// _sbScript.AppendLine("BEGIN TRANSACTION;");
//}
}
示例3: CreateDiffScript
public static void CreateDiffScript(IRepository sourceRepository, IRepository targetRepository,IGenerator generator, bool includeTargetDrops)
{
List<string> sourceTables = sourceRepository.GetAllTableNames();
List<string> targetTables = targetRepository.GetAllTableNames();
// Script each table not in the target
foreach (string tableName in sourceTables.Except(targetTables))
{
generator.GenerateTableCreate(tableName);
}
foreach (string tableName in sourceTables.Except(targetTables))
{
generator.GeneratePrimaryKeys(tableName);
}
foreach (string tableName in sourceTables.Except(targetTables))
{
List<string> tableIndexes = sourceRepository.GetIndexesFromTable(tableName).Select(i => i.IndexName).Distinct().ToList();
foreach (var index in tableIndexes)
{
generator.GenerateIndexScript(tableName, index);
}
}
foreach (string tableName in sourceTables.Except(targetTables))
{
generator.GenerateForeignKeys(tableName);
}
// Drop each table in the target but not the source
if (includeTargetDrops)
{
foreach (string tableName in targetTables.Except(sourceTables))
{
generator.GenerateTableDrop(tableName);
}
}
//For each table both in target and source
foreach (string tableName in sourceTables.Intersect(targetTables))
{
// Check columns for the table: Dropped, added or changed ?
IEnumerable<Column> sourceColumns = from c in sourceRepository.GetColumnsFromTable()
where c.TableName == tableName
select c;
IEnumerable<Column> targetColumns = from c in targetRepository.GetColumnsFromTable()
where c.TableName == tableName
select c;
// Added columns
foreach (var column in sourceColumns.Except(targetColumns, new ColumnComparer()))
{
generator.GenerateColumnAddScript(column);
}
// Same columns, check for changes
foreach (var sourceColumn in sourceColumns.Intersect(targetColumns, new ColumnComparer()))
{
bool altered = false;
// Check if they have any differences:
var targetColumn = (from c in targetColumns
where c.TableName == sourceColumn.TableName && c.ColumnName == sourceColumn.ColumnName
select c).Single();
if (sourceColumn.IsNullable != targetColumn.IsNullable)
altered = true;
if (sourceColumn.NumericPrecision != targetColumn.NumericPrecision)
altered = true;
if (sourceColumn.NumericScale != targetColumn.NumericScale)
altered = true;
if (sourceColumn.AutoIncrementBy != targetColumn.AutoIncrementBy)
altered = true;
if (sourceColumn.CharacterMaxLength != targetColumn.CharacterMaxLength)
altered = true;
if (sourceColumn.DataType != targetColumn.DataType)
altered = true;
if (altered)
generator.GenerateColumnAlterScript(sourceColumn);
// Changed defaults is special case
if (!targetColumn.ColumnHasDefault && sourceColumn.ColumnHasDefault)
{
generator.GenerateColumnSetDefaultScript(sourceColumn);
}
if (!sourceColumn.ColumnHasDefault && targetColumn.ColumnHasDefault)
{
generator.GenerateColumnDropDefaultScript(sourceColumn);
}
// If both columns have defaults, but they are different
if ((sourceColumn.ColumnHasDefault && targetColumn.ColumnHasDefault) && (sourceColumn.ColumnDefault != targetColumn.ColumnDefault))
{
generator.GenerateColumnSetDefaultScript(sourceColumn);
}
}
//Check primary keys
List<PrimaryKey> sourcePK = sourceRepository.GetAllPrimaryKeys().Where(p => p.TableName == tableName).ToList();
List<PrimaryKey> targetPK = targetRepository.GetAllPrimaryKeys().Where(p => p.TableName == tableName).ToList();
// Add the PK
if (targetPK.Count == 0 && sourcePK.Count > 0)
{
generator.GeneratePrimaryKeys(tableName);
//.........这里部分代码省略.........
示例4: CreateExtPropsTable
private static void CreateExtPropsTable(IRepository repo)
{
var list = repo.GetAllTableNames();
if (!list.Contains(tableName))
repo.ExecuteSql(createScript);
}
示例5: Init
private void Init(IRepository repository, string outFile)
{
_outFile = outFile;
_repository = repository;
_sbScript = new StringBuilder(10485760);
_tableNames = _repository.GetAllTableNames();
_allColumns = _repository.GetColumnsFromTable();
_allForeignKeys = repository.GetAllForeignKeys();
_allPrimaryKeys = repository.GetAllPrimaryKeys();
if (_repository.IsServer())
{
// Check if datatypes are supported when exporting from server
// Either they can be converted, are supported, or an exception is thrown (if not supported)
// Currently only sql_variant is not supported
foreach (Column col in _allColumns)
{
col.CharacterMaxLength = Helper.CheckDateColumnLength(col.DataType, col);
col.DateFormat = Helper.CheckDateFormat(col.DataType);
// Check if the current column points to a unique identity column,
// as the two columns' datatypes must match
bool refToIdentity = false;
Dictionary<string, Constraint> columnForeignKeys = new Dictionary<string, Constraint>();
// Fix for multiple constraints with same columns
var _tableKeys = _allForeignKeys.Where(c => c.ConstraintTableName == col.TableName);
foreach (var constraint in _tableKeys)
{
if (!columnForeignKeys.ContainsKey(constraint.Columns.ToString()))
{
columnForeignKeys.Add(constraint.Columns.ToString(), constraint);
}
}
if (columnForeignKeys.ContainsKey(string.Format("[{0}]", col.ColumnName)))
{
var refCol = _allColumns.Where(c => c.TableName == columnForeignKeys[string.Format("[{0}]", col.ColumnName)].UniqueConstraintTableName
&& string.Format("[{0}]", c.ColumnName) == columnForeignKeys[string.Format("[{0}]", col.ColumnName)].UniqueColumnName).Single();
if (refCol != null && refCol.AutoIncrementBy > 0)
{
refToIdentity = true;
}
}
// This modifies the datatype to be SQL Compact compatible
col.DataType = Helper.CheckDataType(col.DataType, col, refToIdentity);
}
_sbScript.AppendFormat("-- Script Date: {0} {1} - Generated by Export2SqlCe version {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), System.Reflection.Assembly.GetExecutingAssembly().GetName().Version);
}
else
{
_sbScript.AppendFormat("-- Script Date: {0} {1} - Generated by ExportSqlCe version {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), System.Reflection.Assembly.GetExecutingAssembly().GetName().Version);
}
_sbScript.AppendLine();
if (!string.IsNullOrEmpty(_outFile) && !_repository.IsServer())
{
_sbScript.Append("-- Database information:");
_sbScript.AppendLine();
foreach (var kv in _repository.GetDatabaseInfo())
{
_sbScript.Append("-- ");
_sbScript.Append(kv.Key);
_sbScript.Append(": ");
_sbScript.Append(kv.Value);
_sbScript.AppendLine();
}
_sbScript.AppendLine();
// Populate all tablenames
_sbScript.Append("-- User Table information:");
_sbScript.AppendLine();
_sbScript.Append("-- ");
_sbScript.Append("Number of tables: ");
_sbScript.Append(_tableNames.Count);
_sbScript.AppendLine();
foreach (string tableName in _tableNames)
{
Int64 rowCount = _repository.GetRowCount(tableName);
_sbScript.Append("-- ");
_sbScript.Append(tableName);
_sbScript.Append(": ");
_sbScript.Append(rowCount);
_sbScript.Append(" row(s)");
_sbScript.AppendLine();
}
_sbScript.AppendLine();
}
}