PDA

View Full Version : سوال: Structure Map lifecycle



nunegandom
چهارشنبه 29 آذر 1396, 01:04 صبح
با عرض پوزش بخاطر اسم
دوبار از یک کنترلر اطلاعات میگیرم (Unit of Work + Repository)
دفعه اول دیتا رو load میکنه ولی دفعه دوم رو پر نمیکنه و context میره برای dispose
Error:

+ Exception Exception thrown: 'System.InvalidOperationException' in EntityFramework.dll ("The operation cannot be completed because the DbContext has been disposed.") System.InvalidOperationException

StructureMap:
For<GalleryController>().AlwaysUnique();
For<HomeController>().AlwaysUnique();
چطور میتونم یا نذارم Dispose بشه و تا متود بعدی صبر کنه یا اینکه وقتی به کنترلر برمیگرده StructureMap درست عمل کنه و repository مو پر کنه؟

RIG000
جمعه 01 دی 1396, 21:58 عصر
بخاطر اینکه ممکنه شما get‌داشته باشی و get خارج از unitofwork ‌هست بنابر این موضوع شما خارج از چرخه حیاط context درخواستی رو میفرستید - و مبحث multithread ‌میاد وسط . شما باید تنظیمات structure map رو درست انجام بدید . درست این هست که شما در تنظیمات unitofwork اینکار رو انجام بدین و پیش برید چون بعد ها به مشکلات بیشتری خواهید خورد در نهایت شما با غیر فعال کردن unitofwork هم میتونید اینکار رو انجام بدید. به صفحه پایین دقت کن - (perrequest)
https://stackoverflow.com/questions/5474999/structuremap-perrequest-lifecycle
در انتها بعد از اینکه شما به این شکلکد نوشتی خطای InvalidOperationException گرفتی که این یک خطای برنامه نویسی هست و به عهده برنامه نویس بوده تا درست کد نویسی کنه . موفق باشید.