PDA

View Full Version : سوال: کار با SQL بر مبنای ارث بری



Caesar
یک شنبه 08 فروردین 1395, 20:46 عصر
با سلام و عرض تبریک سال نویه روش برای ارتباط با SQL توی یکی از پروژه ها دیده بودم، می خواستم بیشتر راجع بهش اطلاعات کسب کنم. توی اون پروژه اومده بودن یک کلاس مبداء به اسم user ساخته بودند که کاربران سایت متدها و خصوصیات این کلاس رو به ارث می بردند. در کلاس پایه یک متد برای درج، یکی برای ویرایش و یکی هم برای حذف نوشته بودند. هر کدام از کاربران که وارد پنل کاربری خودش میشد و میخواست مثلا ویرایش انجام بده تنها id اون کاربر رو میگرفت و ویرایش انجام میدادبه صورتی که در کلاس مشتق شده ، برای متد ویرایش به صورت زیر از کلمه base استفاده میکرد:base.["Name"]=txtName.Textbase.["LastName"]=txtLastName.Text...که در اصل اطلاعات رو از کاربر fetch میکنه و تنها id کاربر رو ارسال میکنه. کلاس پایه هم براساس id دریافتی اطلاعات fetch شده رو به دیتابیس تزریق می کنه.در مورد این روش اطلاعات کامل تری با جزئیات می خواستم. ممنون میشم که راهنماییم کنید

CsharpNevisi
دوشنبه 09 فروردین 1395, 17:34 عصر
خب .. کلمه base به همون پیجی که هستی اشاره میکنه :)
ما نمیتونم همچین چیزی داشته باشیم
base.["Name"]

شما بعد از . باید یه پراپرتی یا فیلد یا فانکشن یا چیزه دیگه ای رو بیاری ...
اون احتمالا
base.Session["Name"]

نوشته بود ...
فک کنم بدونی سیشن چی هست ..
موقع اتونتیکیشن هم اطلاعات رو داخل سیشن میریزه ...
از تاریخ عضویتت مشخه که خیلی وقته برنامه نویسی کار میکنی .. فک نکنم با این مفاهیم غریبه باشی
تنها کاری که میکنه اطلاعات رو تو یه سیشن میریزه و دستور اپدیت رو انجام میده .. البته این کار کار قشنگی هم نیست :) ..

Caesar
پنج شنبه 12 فروردین 1395, 19:01 عصر
سلام دوست عزیز
منظور صحبت من رو درست متوجه نشدید. کار با Session برای اعمال پایه کار با دیتابیس به هیچ هنوان عمل درستی نیست. مبحث Session جهت اطلاعات از وضعیت جاری برای ارائه ی واکنش مناسب با کاربران یک وب سایت استفاده میشه.
منظور بحث من برنامه نویسی شی گرایی محض با SQL هستش که بر پایه این نوع برنامه نویسی متدهای LINQ , EF ارائه شده اند. ولی روشی که من دیدم بسیار متفاوت تر و کاربردی تر بود.
بازم ممنونم از پاسخگوییتون

Caesar
پنج شنبه 12 فروردین 1395, 19:03 عصر
خب .. کلمه base به همون پیجی که هستی اشاره میکنه :)
ما نمیتونم همچین چیزی داشته باشیم
base.["Name"]

شما بعد از . باید یه پراپرتی یا فیلد یا فانکشن یا چیزه دیگه ای رو بیاری ...
اون احتمالا
base.Session["Name"]

نوشته بود ...
فک کنم بدونی سیشن چی هست ..
موقع اتونتیکیشن هم اطلاعات رو داخل سیشن میریزه ...
از تاریخ عضویتت مشخه که خیلی وقته برنامه نویسی کار میکنی .. فک نکنم با این مفاهیم غریبه باشی
تنها کاری که میکنه اطلاعات رو تو یه سیشن میریزه و دستور اپدیت رو انجام میده .. البته این کار کار قشنگی هم نیست :) ..

سلام دوست عزیز
منظور صحبت من رو درست متوجه نشدید. کار با Session برای اعمال پایه کار با دیتابیس به هیچ هنوان عمل درستی نیست. مبحث Session جهت اطلاعات از وضعیت جاری برای ارائه ی واکنش مناسب با کاربران یک وب سایت استفاده میشه.
منظور بحث من برنامه نویسی شی گرایی محض با SQL هستش که بر پایه این نوع برنامه نویسی متدهای LINQ , EF ارائه شده اند. ولی روشی که من دیدم بسیار متفاوت تر و کاربردی تر بود.
بازم ممنونم از پاسخگوییتون

CsharpNevisi
جمعه 13 فروردین 1395, 16:22 عصر
من نمیفهمم منظورتون چیه ..
ما تو SQL اصلا شی گرایی نداریم .. EF و Linq هم تکنولوژی هایی در بستر دات نت هستن و با SQL متاوت هستند .. اینا فقط یه ORM هستن که استور پروسیجر تولید میکنن و بحث شی گرایی رو تو برنامه پشتیبانی میکنن نه تو بانک اطلاعاتی .
اگه بخواییم EF یا Linq رو هم حساب کنیم این سینتکس تو سی شارپ اصلا درست نیست که بخواد کار کنه و این موضوع هم ربطی به این دو نداره ... اینو تو سی شارپ بنویسید اصلا برنامه کامپایل هم نمیشه .. !!
من تا الان همچین چیزی تو دات نت ندیدم .. :|
اگه ممکنه یه بلاک کدی که این سینتکس توش استفاده شده رو بزارید تا من هم بتونم باهاش اشنا بشم و ازش استفاده کنم و ب کمک هم بهتر میتونیم سر از کار دربیاریم :))))

Caesar
دوشنبه 23 فروردین 1395, 01:29 صبح
من نمیفهمم منظورتون چیه ..
ما تو SQL اصلا شی گرایی نداریم .. EF و Linq هم تکنولوژی هایی در بستر دات نت هستن و با SQL متاوت هستند .. اینا فقط یه ORM هستن که استور پروسیجر تولید میکنن و بحث شی گرایی رو تو برنامه پشتیبانی میکنن نه تو بانک اطلاعاتی .
اگه بخواییم EF یا Linq رو هم حساب کنیم این سینتکس تو سی شارپ اصلا درست نیست که بخواد کار کنه و این موضوع هم ربطی به این دو نداره ... اینو تو سی شارپ بنویسید اصلا برنامه کامپایل هم نمیشه .. !!
من تا الان همچین چیزی تو دات نت ندیدم .. :|
اگه ممکنه یه بلاک کدی که این سینتکس توش استفاده شده رو بزارید تا من هم بتونم باهاش اشنا بشم و ازش استفاده کنم و ب کمک هم بهتر میتونیم سر از کار دربیاریم :))))

جناب سی شارپ نویس عزیز،من که نگفتم توی SQL به صورت شی گرا برنامه نویسی کنیم! موضوع بحث من کار با یه دیتابیس مثه SQL بر مبنای ارث بری."توی پست اولم خط اول هم گفته بودم برای ارتباط با SQL." حالا ارث بری رو کجا باید استفاده کنیم که کاملا مشخصه و قطعا باید توی application layer باشه و کلاس های مربوط به اون هم پیاده سازی بشه.
بعد از کلی تحقیق جوابمو پیدا کردم . از شما هم بابت پاسخگوییتون ممنون