• 1404/10/12

استفاده از DbContextFactory :

سلام خسته نباشید.
برای مشکل DbContext در بلیزور ssr زمانی که API نداریم و مستقیم از Context استفاده میکینم معمولا خطا ایجاد میکنه.داخل مستندات بلیزور نوشته از DbcotnextFactory استفاده کنیم این راه صحیح؟ یا اگر راه بهتری هست ممنون میشم اطلاع بدید.
https://learn.microsoft.com/en-us/aspnet/core/blazor/blazor-ef-core?view=aspnetcore-10.0

  • 1404/10/12
  • ساعت 18:10

سلام خدمت شما دوست عزیز

بله مشکلی نیست میتونین از DbContextFactory استفاده کنین

فقط اینکه با چه خطایی مواجه میشین؟


  • 1404/10/12
  • ساعت 18:50

A second operation was started on this context.
زمانی که مجبورم اطلاعاتی رو در هدر سایت به صورت داینامیک نشان بدم و در تمام صحفات تکرار بشه این مشکل پیش میاد یا بهتر بگم کامپوننتهایی که در Layout هستن و در تمامی صفحات تکرار میشن.
این Layout یک پروژه رزومه است عملا اینجا که GeneralInfo لود میشه باعث میشه در صفحات بعدی DbContext دچار مشکل بشه.

این کامپوننت Genral:

حتی State هم Set کردم ولی نتیجه نداد.
اینم صفحه Home:


  • 1404/10/12
  • ساعت 18:53

در connection string مربوط به دیتابیس این قطعه کد رو قرار بدین و مجدد تست کنین 

MultipleActiveResultSets=True

  • 1404/10/12
  • ساعت 19:19

خطای قبلی(A second operation was started on this context) هنوز پابرجاست به نظر خود مایکروسافت توصیه کرد در .net8 به بالا در blazor web app ssr rendermode از DbContextFactroy استفاده کنیم چون اگر از DbContext در دو عملیات Async همزمان استفاده بشه این خطا رخ میده. یه روش دیگه هم بود که LifeTime DbContext تغییر میداد که زیاد جالب نبود چون داخل بخش دیباگینگ بعضی وقتها ارور میده صرفا برای حالت خارج از دیباگ درست کار میداد. 
 


  • 1404/10/12
  • ساعت 19:24

از همون DbContextFactory استفاده کنین دوست من

فکر میکنم مشکل برطرف بشه


  • 1404/10/12
  • ساعت 19:46

مشکل با همون DbContextFactory حل شد. ممنون از راهنماییتون. 


logo-enamadlogo-samandehi