PDA

View Full Version : سوال: استفاده از LINQ to SQL در ASP.NET



Rambod
سه شنبه 31 فروردین 1389, 15:22 عصر
سلام
یه سئوالی چند وقتیه که ذهنم رو مشغول کرده اونم اینه که در ASP.NET بهترین وضعیت برای تعریف DataContext به چه صورت هستش؟ در حال حاضر من در پروژه هام، هر وقت احتیاج به خواندن یا نوشتن از دیتابیس پیدا میکنم، همونجا DataContext رو تعریف میکنم و ازش استفاده میکنم. با این روش مثلاً اگر در یک صفحه 10 تا وب کنترل داشته باشم که هر کدوم از اون وب کنترل ها احتیاج به خواندن یا نوشتن در دیتابیس داشته باشه، احتیاج به حداقل 10 بار تعریف DataContext در داخل وب کنترل‌ها دارم.
به نظر خود من این روش بهینه نیست. چون منطقاً در یک Page نباید 10 بار DataContext تعریف کرد!
یک روش ماستمالی‌گونه (!!) اینه که DataContext رو یک بار در Page اصلی تعریف کنیم و اون رو از طریق Propertyهایی که برای وب کنترل ها تعریف میکنیم، به وب کنترل پاس کنیم. ولی این روش زیاد جالب به نظر نمیاد.
به نظرتون بهترین وضعیت چجوری میتونه باشه؟

salehbagheri
جمعه 03 اردیبهشت 1389, 22:30 عصر
از معماري چند لايه استفاده كنيد!

بدين صورت كه توابع لايه دسترسي ديتا رو به صورت كلي و جامع در يك فايل وارد كرده و از طريق لايه BLL به اون ها دسترسي پيدا كنيد!

Rambod
جمعه 03 اردیبهشت 1389, 23:09 عصر
من این کار رو میکنم. البته در LINQ to SQL از طریق خاصیت Partial بودن کلاسهای DAL، میشه کلاسهای BLL رو نوشت. در نتیجه فرقی به حالمون نداره. مگراینکه بخوایم در BLL به ازای هر Entity یک DataContext داخل کلاس BLL داشته باشیم که فکر نمیکنم روش درستی باشه. چون اینجوری یکی از وظایف DataContext که همانا Object Tracking باشه بلا استفاده میشه.
البته من در LINQ to SQL تازه کارم و اطمینانی به حرفهایی که میزنم ندارم...