diff --git a/Marr.Data/QGen/QueryBuilder.cs b/Marr.Data/QGen/QueryBuilder.cs index 6646b3a36..45560ab17 100644 --- a/Marr.Data/QGen/QueryBuilder.cs +++ b/Marr.Data/QGen/QueryBuilder.cs @@ -365,7 +365,7 @@ namespace Marr.Data.QGen public virtual SortBuilder Where(Expression> filterExpression) { - _whereBuilder = new WhereBuilder(_db.Command, _dialect, filterExpression, _tables, false, true); + _whereBuilder = new WhereBuilder(_db.Command, _dialect, filterExpression, _tables, _useAltName, true); return SortBuilder; } diff --git a/Marr.Data/QGen/SortBuilder.cs b/Marr.Data/QGen/SortBuilder.cs index d16267cf7..69fc7959d 100644 --- a/Marr.Data/QGen/SortBuilder.cs +++ b/Marr.Data/QGen/SortBuilder.cs @@ -217,7 +217,12 @@ namespace Marr.Data.QGen } string columnName = DataHelper.GetColumnName(sort.DeclaringType, sort.PropertyName, useAltName); - sb.Append(_dialect.CreateToken(string.Format("{0}.{1}", table.Alias, columnName))); + + if (!_useAltName) + sb.Append(_dialect.CreateToken(string.Format("{0}.{1}", table.Alias, columnName))); + + else + sb.Append(_dialect.CreateToken(string.Format("{0}", columnName))); if (sort.Direction == SortDirection.Desc) sb.Append(" DESC"); diff --git a/Marr.Data/QGen/WhereBuilder.cs b/Marr.Data/QGen/WhereBuilder.cs index 7cada67f8..b76db2a20 100644 --- a/Marr.Data/QGen/WhereBuilder.cs +++ b/Marr.Data/QGen/WhereBuilder.cs @@ -182,7 +182,12 @@ namespace Marr.Data.QGen } string columnName = DataHelper.GetColumnName(declaringType, member.Name, _useAltName); - return _dialect.CreateToken(string.Format("{0}.{1}", table.Alias, columnName)); + + if (!_useAltName) + return _dialect.CreateToken(string.Format("{0}.{1}", table.Alias, columnName)); + + else + return _dialect.CreateToken(string.Format("{0}", columnName)); } else { diff --git a/NzbDrone.Core/Datastore/MappingExtensions.cs b/NzbDrone.Core/Datastore/MappingExtensions.cs index 702169798..267cb4181 100644 --- a/NzbDrone.Core/Datastore/MappingExtensions.cs +++ b/NzbDrone.Core/Datastore/MappingExtensions.cs @@ -23,6 +23,7 @@ namespace NzbDrone.Core.Datastore return mapBuilder.Table.MapTable(tableName) .Columns .AutoMapPropertiesWhere(IsMappableProperty) + .PrefixAltNames(String.Format("{0}_", typeof(T).Name)) .For(c => c.Id) .SetPrimaryKey() .SetReturnValue() diff --git a/NzbDrone.Core/Datastore/TableMapping.cs b/NzbDrone.Core/Datastore/TableMapping.cs index fe6f87ffc..b29464675 100644 --- a/NzbDrone.Core/Datastore/TableMapping.cs +++ b/NzbDrone.Core/Datastore/TableMapping.cs @@ -52,7 +52,8 @@ namespace NzbDrone.Core.Datastore Mapper.Entity().RegisterModel("Seasons"); Mapper.Entity().RegisterModel("Episodes") - .Ignore(e => e.SeriesTitle); + .Ignore(e => e.SeriesTitle) + .Relationships.AutoMapICollectionOrComplexProperties(); Mapper.Entity().RegisterModel("EpisodeFiles"); diff --git a/NzbDrone.Core/Tv/EpisodeRepository.cs b/NzbDrone.Core/Tv/EpisodeRepository.cs index 13b639ffa..9d5727caf 100644 --- a/NzbDrone.Core/Tv/EpisodeRepository.cs +++ b/NzbDrone.Core/Tv/EpisodeRepository.cs @@ -75,14 +75,15 @@ namespace NzbDrone.Core.Tv startingSeasonNumber = 0; } - pagingSpec.Records = Query.Join(JoinType.Inner, e => e.Series, (e, s) => e.SeriesId == s.Id) + var pagingQuery = Query.Join(JoinType.Inner, e => e.Series, (e, s) => e.SeriesId == s.Id) .Where(e => e.EpisodeFileId == 0) .AndWhere(e => e.SeasonNumber >= startingSeasonNumber) .AndWhere(e => e.AirDate <= currentTime) .OrderBy(pagingSpec.OrderByClause(), pagingSpec.ToSortDirection()) .Skip(pagingSpec.PagingOffset()) - .Take(pagingSpec.PageSize) - .ToList(); + .Take(pagingSpec.PageSize); + + pagingSpec.Records = pagingQuery.ToList(); //TODO: Use the same query for count and records pagingSpec.TotalRecords = Query.Where(e => e.EpisodeFileId == 0 && e.SeasonNumber >= startingSeasonNumber && e.AirDate <= currentTime).Count(); diff --git a/NzbDrone.Core/Tv/EpisodeService.cs b/NzbDrone.Core/Tv/EpisodeService.cs index ea726474f..ca69afbde 100644 --- a/NzbDrone.Core/Tv/EpisodeService.cs +++ b/NzbDrone.Core/Tv/EpisodeService.cs @@ -99,8 +99,6 @@ namespace NzbDrone.Core.Tv { var episodeResult = _episodeRepository.EpisodesWithoutFiles(pagingSpec, includeSpecials); - episodeResult.Records = LinkSeriesToEpisodes(episodeResult.Records); - return episodeResult; }