Kaynağa Gözat

Merge pull request #723 from Bond-009/dbperf

Minor improvements to db code
Andrew Rabert 6 yıl önce
ebeveyn
işleme
05fd76c0fa

+ 7 - 8
Emby.Dlna/ContentDirectory/ControlHandler.cs

@@ -483,27 +483,26 @@ namespace Emby.Dlna.ContentDirectory
                 return GetGenreItems(item, Guid.Empty, user, sort, startIndex, limit);
                 return GetGenreItems(item, Guid.Empty, user, sort, startIndex, limit);
             }
             }
 
 
-            if (!stubType.HasValue || stubType.Value != StubType.Folder)
+            if ((!stubType.HasValue || stubType.Value != StubType.Folder)
+                && item is IHasCollectionType collectionFolder)
             {
             {
-                var collectionFolder = item as IHasCollectionType;
-                if (collectionFolder != null && string.Equals(CollectionType.Music, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
+                if (string.Equals(CollectionType.Music, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
                 {
                 {
                     return GetMusicFolders(item, user, stubType, sort, startIndex, limit);
                     return GetMusicFolders(item, user, stubType, sort, startIndex, limit);
                 }
                 }
-                if (collectionFolder != null && string.Equals(CollectionType.Movies, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
+                else if (string.Equals(CollectionType.Movies, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
                 {
                 {
                     return GetMovieFolders(item, user, stubType, sort, startIndex, limit);
                     return GetMovieFolders(item, user, stubType, sort, startIndex, limit);
                 }
                 }
-                if (collectionFolder != null && string.Equals(CollectionType.TvShows, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
+                else if (string.Equals(CollectionType.TvShows, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
                 {
                 {
                     return GetTvFolders(item, user, stubType, sort, startIndex, limit);
                     return GetTvFolders(item, user, stubType, sort, startIndex, limit);
                 }
                 }
-
-                if (collectionFolder != null && string.Equals(CollectionType.Folders, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
+                else if (string.Equals(CollectionType.Folders, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
                 {
                 {
                     return GetFolders(item, user, stubType, sort, startIndex, limit);
                     return GetFolders(item, user, stubType, sort, startIndex, limit);
                 }
                 }
-                if (collectionFolder != null && string.Equals(CollectionType.LiveTv, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
+                else if (string.Equals(CollectionType.LiveTv, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
                 {
                 {
                     return GetLiveTvChannels(item, user, stubType, sort, startIndex, limit);
                     return GetLiveTvChannels(item, user, stubType, sort, startIndex, limit);
                 }
                 }

+ 4 - 5
Emby.Server.Implementations/ApplicationHost.cs

@@ -315,7 +315,7 @@ namespace Emby.Server.Implementations
         private IUserDataManager UserDataManager { get; set; }
         private IUserDataManager UserDataManager { get; set; }
         private IUserRepository UserRepository { get; set; }
         private IUserRepository UserRepository { get; set; }
         internal IDisplayPreferencesRepository DisplayPreferencesRepository { get; set; }
         internal IDisplayPreferencesRepository DisplayPreferencesRepository { get; set; }
-        internal IItemRepository ItemRepository { get; set; }
+        internal SqliteItemRepository ItemRepository { get; set; }
 
 
         private INotificationManager NotificationManager { get; set; }
         private INotificationManager NotificationManager { get; set; }
         private ISubtitleManager SubtitleManager { get; set; }
         private ISubtitleManager SubtitleManager { get; set; }
@@ -830,9 +830,8 @@ namespace Emby.Server.Implementations
             DisplayPreferencesRepository = displayPreferencesRepo;
             DisplayPreferencesRepository = displayPreferencesRepo;
             RegisterSingleInstance(DisplayPreferencesRepository);
             RegisterSingleInstance(DisplayPreferencesRepository);
 
 
-            var itemRepo = new SqliteItemRepository(ServerConfigurationManager, this, JsonSerializer, LoggerFactory, assemblyInfo, FileSystemManager, EnvironmentInfo, TimerFactory);
-            ItemRepository = itemRepo;
-            RegisterSingleInstance(ItemRepository);
+            ItemRepository = new SqliteItemRepository(ServerConfigurationManager, this, JsonSerializer, LoggerFactory, assemblyInfo);
+            RegisterSingleInstance<IItemRepository>(ItemRepository);
 
 
             AuthenticationRepository = GetAuthenticationRepository();
             AuthenticationRepository = GetAuthenticationRepository();
             RegisterSingleInstance(AuthenticationRepository);
             RegisterSingleInstance(AuthenticationRepository);
@@ -950,7 +949,7 @@ namespace Emby.Server.Implementations
             ((UserManager)UserManager).Initialize();
             ((UserManager)UserManager).Initialize();
 
 
             ((UserDataManager)UserDataManager).Repository = userDataRepo;
             ((UserDataManager)UserDataManager).Repository = userDataRepo;
-            itemRepo.Initialize(userDataRepo, UserManager);
+            ItemRepository.Initialize(userDataRepo, UserManager);
             ((LibraryManager)LibraryManager).ItemRepository = ItemRepository;
             ((LibraryManager)LibraryManager).ItemRepository = ItemRepository;
         }
         }
 
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 170 - 301
Emby.Server.Implementations/Data/SqliteItemRepository.cs


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor