Hi,
Firstly, thank you so much for reply 
My project's Nhibernate configuration is as follows. Is there anything 
wrong here, is there a point I'm missing?

public static IServiceCollection AddSniffactorNhibernate(this 
IServiceCollection services, string connectionString)
        {
            Check.NotNull(connectionString);

            ISessionFactory _sessionFactory = 
BuildSessionFactory(connectionString);

            services.AddSingleton(_sessionFactory);
            services.AddScoped<ISession>(factory => 
factory.GetServices<ISessionFactory>().First().OpenSession());
            services.AddScoped(typeof(IRepository<>), 
typeof(NhRepositoryBase<>));
            services.AddSingleton(typeof(IUnitOfWork), 
typeof(NhUnitOfWork));

            ConsoleHelper.WriteWarningCommandLine(">>> NHibernate 
Configurasyonu tamamlandı.");

            return services;
        }

        private static ISessionFactory BuildSessionFactory(string 
connectionString)
        {
            FluentConfiguration configuration = Fluently.Configure()
                
.Database(OracleManagedDataClientConfiguration.Oracle9.ConnectionString(connectionString))
                .Mappings(m => m.FluentMappings
                    .AddFromAssemblyOf<ISniffactorMapping>()
                    .Conventions.Add(
                        ConventionBuilder.Property.When(criteria => 
criteria.Expect(x => x.Nullable, Is.Not.Set), x => x.Not.Nullable()))
                    .Conventions.Add<OtherConversions>()
                );

            return configuration.BuildSessionFactory();
        }

private class OtherConversions : IHasManyConvention, IReferenceConvention
        {
            public void Apply(IOneToManyCollectionInstance instance)
            {
                instance.LazyLoad();
                instance.AsBag();
                instance.Cascade.SaveUpdate();
                instance.Inverse();
            }

            public void Apply(IManyToOneInstance instance)
            {
                instance.LazyLoad(Laziness.Proxy);
                instance.Cascade.None();
                instance.Not.Nullable();
            }
        }
30 Ekim 2020 Cuma tarihinde saat 22:57:18 UTC+3 itibarıyla Quicoli şunları 
yazdı:

> Hi
>
> Open and close a session inside your for each loop and you will be fine
>
> On Fri, Oct 30, 2020, 17:46 Hakan karaoğlu <hknn.k...@gmail.com> wrote:
>
>> Hi,
>>
>> I'm using rabbitmq and nhibernate in a .net core project. I run 
>> asynchronous queries for database operations on some consumers. For 
>> example, I am sending a single message to the queue, the message is 
>> processed successfully, but when I send 100 messages, database operations 
>> start getting errors after a while.
>>
>> I tested the similar structure as follows. I did database transactions 
>> 100 times in a loop and it didn't give an error. But when I tried it in 
>> parallel loop, it gave an error like in rabbitmq.
>>
>> Is this from Nhibernate or is there a different logic? Nhibernate not 
>> thread-safe?
>>
>> Sample Code with Error :
>>
>> Parallel.For(0, 100, async act =>
>>             {
>>                 var ws = await 
>> _workspaceRepository.GetWorkspaceByIdAsync(66);
>>                 System.Console.WriteLine($"GetWorkspaceByIdAsync : 
>> {ws.Name}");
>>                 var keywords = await 
>> _workspaceKeywordRepository.GetForbiddenKeywordsByWorkspaceAsync(66);
>>                 
>> System.Console.WriteLine($"GetForbiddenKeywordsByWorkspaceAsync : 
>> {keywords.Count}");
>>                 var IsforbiddenKeyword = await 
>> HasForbiddenKeywordAsync(66, "facebook", "instagram");
>>                 System.Console.WriteLine($"HasForbiddenKeywordAsync : 
>> {IsforbiddenKeyword}");
>>             });
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "nhusers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to nhusers+u...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/nhusers/15a15084-855f-4d1c-9ebd-ea1b62cf9a0cn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/nhusers/15a15084-855f-4d1c-9ebd-ea1b62cf9a0cn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nhusers+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nhusers/7024ae71-4300-48f5-b5f7-23c3e35b2c1en%40googlegroups.com.

Reply via email to