Refactored GetOrAddMany and GetOrAddManyAsync in DistributedCache to ensure returned key-value pairs are correctly mapped by key, regardless of order from the factory. Added unit tests to verify correct mapping and concurrency behavior.
Added transient registration for IChatClientAccessor<> in AbpAIModule. Updated ChatClientAccessor to implement ITransientDependency and removed TryRegister from dependency attribute. Introduced unit tests for ChatClientAccessor resolution and behavior. Adjusted MockChatClient's StreamingResponseParts constant for test consistency.
Simplified the logic for mapping extra properties by removing redundant reference checks and always invoking MapExtraProperties with appropriate defaults. Updated related tests and removed unnecessary [MapExtraProperties] attributes from sample mappers.
Introduces a ProviderName property to IRepository and related base classes, requiring repositories to specify their provider via constructor. Adds provider constants for EF Core, MemoryDb, and MongoDB, and updates repository implementations and tests accordingly. Also refactors EntityName to a public property and renames WithEntityName extension to SetEntityName.
Refactored repository interfaces and implementations to replace SetCustomEntityName and CustomEntityName with SetEntityName and EntityName for consistency and clarity. Updated related extension methods and tests to use the new naming.
Introduces the ability to set a custom entity name for repositories by adding a SetCustomEntityName method to IRepository and BasicRepositoryBase. Updates EfCoreRepository to use the custom entity name when accessing DbSet, and extends IEfCoreDbContext with an overload of Set<T> that accepts a name. Test stubs are updated to implement the new method.