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); }