|  |  |  | @ -2,6 +2,7 @@ using System; | 
			
		
	
		
			
				
					|  |  |  |  | using System.Linq; | 
			
		
	
		
			
				
					|  |  |  |  | using System.Threading.Tasks; | 
			
		
	
		
			
				
					|  |  |  |  | using Microsoft.EntityFrameworkCore; | 
			
		
	
		
			
				
					|  |  |  |  | using Microsoft.Extensions.DependencyInjection; | 
			
		
	
		
			
				
					|  |  |  |  | using Shouldly; | 
			
		
	
		
			
				
					|  |  |  |  | using Volo.Abp.Data; | 
			
		
	
		
			
				
					|  |  |  |  | using Volo.Abp.Domain.Repositories; | 
			
		
	
	
		
			
				
					|  |  |  | @ -9,6 +10,7 @@ using Volo.Abp.Domain.Repositories.EntityFrameworkCore; | 
			
		
	
		
			
				
					|  |  |  |  | using Volo.Abp.TestApp.Domain; | 
			
		
	
		
			
				
					|  |  |  |  | using Volo.Abp.TestApp.EntityFrameworkCore; | 
			
		
	
		
			
				
					|  |  |  |  | using Volo.Abp.TestApp.Testing; | 
			
		
	
		
			
				
					|  |  |  |  | using Volo.Abp.Uow; | 
			
		
	
		
			
				
					|  |  |  |  | using Xunit; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | namespace Volo.Abp.EntityFrameworkCore.Repositories; | 
			
		
	
	
		
			
				
					|  |  |  | @ -72,4 +74,39 @@ public class ReadOnlyRepository_Tests : TestAppTestBase<AbpEntityFrameworkCoreTe | 
			
		
	
		
			
				
					|  |  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     [Fact] | 
			
		
	
		
			
				
					|  |  |  |  |     public async Task ReadOnlyRepository_Should_NoTracking_In_UOW() | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         var repository = GetRequiredService<IRepository<Person, Guid>>(); | 
			
		
	
		
			
				
					|  |  |  |  |         var readonlyRepository = GetRequiredService<IReadOnlyRepository<Person, Guid>>(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         await WithUnitOfWorkAsync(async () => | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             await repository.InsertAsync(new Person(Guid.NewGuid(), "people1", 18)); | 
			
		
	
		
			
				
					|  |  |  |  |             await repository.InsertAsync(new Person(Guid.NewGuid(), "people2", 19)); | 
			
		
	
		
			
				
					|  |  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         using (var uow = GetRequiredService<IUnitOfWorkManager>().Begin()) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             var p1 = await repository.FirstOrDefaultAsync(x => x.Name == "people1"); | 
			
		
	
		
			
				
					|  |  |  |  |             p1.ShouldNotBeNull(); | 
			
		
	
		
			
				
					|  |  |  |  |             p1.ChangeName("people1-updated"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             var p2 = await readonlyRepository.FirstOrDefaultAsync(x => x.Name == "people2"); | 
			
		
	
		
			
				
					|  |  |  |  |             p2.ShouldNotBeNull(); | 
			
		
	
		
			
				
					|  |  |  |  |             p2.ChangeName("people2-updated"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             await uow.CompleteAsync(); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         await WithUnitOfWorkAsync(async () => | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             (await repository.FirstOrDefaultAsync(x => x.Name == "people1")).ShouldBeNull(); | 
			
		
	
		
			
				
					|  |  |  |  |             (await repository.FirstOrDefaultAsync(x => x.Name == "people1-updated")).ShouldNotBeNull(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             (await readonlyRepository.FirstOrDefaultAsync(x => x.Name == "people2")).ShouldNotBeNull(); | 
			
		
	
		
			
				
					|  |  |  |  |             (await readonlyRepository.FirstOrDefaultAsync(x => x.Name == "people2-updated")).ShouldBeNull(); | 
			
		
	
		
			
				
					|  |  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |