private IEnumerable <Index> GetIndices( DbContext dbContext, MetadataWorkspace metadata, Type entityType) { var tableInfo = metadata.GetTableInfo(entityType); var databaseIndexInfo = _sqlHelper.GetIndexInformation(dbContext, tableInfo.Name); var indexes = _relationshipMapper.MapIndexes(databaseIndexInfo, tableInfo); return(indexes); }
private IEnumerable <ForeignKey> GetForeignKeys( DbContext dbContext, MetadataWorkspace metadata, Type entityType) { var tableInfo = metadata.GetTableInfo(entityType); var databaseForeignKeyInfo = _sqlHelper.GetForeignKeyInformation(dbContext, tableInfo.Schema, tableInfo.Name); var reflectionForeignKeyInfo = metadata.GetForeignKeys(entityType); var foreignKeys = _relationshipMapper.MapForeignKeys(databaseForeignKeyInfo, reflectionForeignKeyInfo); return(foreignKeys); }
public static IEnumerable <ReflectedForeignKeyInfo> GetForeignKeys(this MetadataWorkspace metadata, Type entityType) { var foreignKeys = metadata .GetItems <AssociationType>(DataSpace.SSpace) .SelectMany(a => a.ReferentialConstraints) .Where(rc => rc.ToRole.Name == entityType.Name) .Select(rc => { var fromEntity = metadata.GetTypeFromName(rc.ToRole.Name); var toEntity = metadata.GetTypeFromName(rc.FromRole.Name); return(new ReflectedForeignKeyInfo { FromEntity = fromEntity, FromTable = metadata.GetTableInfo(fromEntity), FromColumn = rc.ToProperties[0].Name, ToEntity = toEntity, ToTable = metadata.GetTableInfo(toEntity), ToColumn = rc.FromProperties[0].Name }); }); return(foreignKeys); }
private IEnumerable <PrimaryKey> GetPrimaryKeys( DbContext dbContext, MetadataWorkspace metadata, Type entityType) { var tableInfo = metadata.GetTableInfo(entityType); var databasePrimaryKeyInfo = _sqlHelper.GetPrimaryKeyInformation(dbContext, tableInfo.Name); var reflectionPrimaryKeyInfo = metadata.GetPrimaryKeys(entityType); var primaryKeys = _relationshipMapper.MapPrimaryKeys(databasePrimaryKeyInfo, reflectionPrimaryKeyInfo); foreach (var primaryKey in primaryKeys) { primaryKey.Table = tableInfo; } return(primaryKeys); }