diff options
Diffstat (limited to 'Emby.Server.Core/Data')
| -rw-r--r-- | Emby.Server.Core/Data/DataExtensions.cs | 5 | ||||
| -rw-r--r-- | Emby.Server.Core/Data/SqliteItemRepository.cs | 45 |
2 files changed, 37 insertions, 13 deletions
diff --git a/Emby.Server.Core/Data/DataExtensions.cs b/Emby.Server.Core/Data/DataExtensions.cs index 631c1c500..20766619e 100644 --- a/Emby.Server.Core/Data/DataExtensions.cs +++ b/Emby.Server.Core/Data/DataExtensions.cs @@ -25,6 +25,11 @@ namespace Emby.Server.Core.Data return (IDataParameter)cmd.Parameters[index]; } + public static IDataParameter GetParameter(this IDbCommand cmd, string name) + { + return (IDataParameter)cmd.Parameters[name]; + } + public static IDataParameter Add(this IDataParameterCollection paramCollection, IDbCommand cmd, string name, DbType type) { var param = cmd.CreateParameter(); diff --git a/Emby.Server.Core/Data/SqliteItemRepository.cs b/Emby.Server.Core/Data/SqliteItemRepository.cs index c2328641c..91c46222b 100644 --- a/Emby.Server.Core/Data/SqliteItemRepository.cs +++ b/Emby.Server.Core/Data/SqliteItemRepository.cs @@ -810,7 +810,15 @@ namespace Emby.Server.Core.Data _saveItemCommand.GetParameter(index++).Value = item.ParentId; } - _saveItemCommand.GetParameter(index++).Value = string.Join("|", item.Genres.ToArray()); + if (item.Genres.Count > 0) + { + _saveItemCommand.GetParameter(index++).Value = string.Join("|", item.Genres.ToArray()); + } + else + { + _saveItemCommand.GetParameter(index++).Value = null; + } + _saveItemCommand.GetParameter(index++).Value = item.GetInheritedParentalRatingValue() ?? 0; _saveItemCommand.GetParameter(index++).Value = LatestSchemaVersion; @@ -852,8 +860,23 @@ namespace Emby.Server.Core.Data } _saveItemCommand.GetParameter(index++).Value = item.IsInMixedFolder; - _saveItemCommand.GetParameter(index++).Value = string.Join("|", item.LockedFields.Select(i => i.ToString()).ToArray()); - _saveItemCommand.GetParameter(index++).Value = string.Join("|", item.Studios.ToArray()); + if (item.LockedFields.Count > 0) + { + _saveItemCommand.GetParameter(index++).Value = string.Join("|", item.LockedFields.Select(i => i.ToString()).ToArray()); + } + else + { + _saveItemCommand.GetParameter(index++).Value = null; + } + + if (item.Studios.Count > 0) + { + _saveItemCommand.GetParameter(index++).Value = string.Join("|", item.Studios.ToArray()); + } + else + { + _saveItemCommand.GetParameter(index++).Value = null; + } if (item.Audio.HasValue) { @@ -1043,31 +1066,27 @@ namespace Emby.Server.Core.Data _saveItemCommand.GetParameter(index++).Value = item.TotalBitrate; _saveItemCommand.GetParameter(index++).Value = item.ExtraType; + string artists = null; var hasArtists = item as IHasArtist; if (hasArtists != null) { if (hasArtists.Artists.Count > 0) { - _saveItemCommand.GetParameter(index++).Value = string.Join("|", hasArtists.Artists.ToArray()); - } - else - { - _saveItemCommand.GetParameter(index++).Value = null; + artists = string.Join("|", hasArtists.Artists.ToArray()); } } + _saveItemCommand.GetParameter(index++).Value = artists; + string albumArtists = null; var hasAlbumArtists = item as IHasAlbumArtist; if (hasAlbumArtists != null) { if (hasAlbumArtists.AlbumArtists.Count > 0) { - _saveItemCommand.GetParameter(index++).Value = string.Join("|", hasAlbumArtists.AlbumArtists.ToArray()); - } - else - { - _saveItemCommand.GetParameter(index++).Value = null; + albumArtists = string.Join("|", hasAlbumArtists.AlbumArtists.ToArray()); } } + _saveItemCommand.GetParameter(index++).Value = albumArtists; _saveItemCommand.GetParameter(index++).Value = item.ExternalId; |
