نمایش نتایج 1 تا 11 از 11

نام تاپیک: روش های ارتباط با دیتابیس در entity framework

  1. #1
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    Question روش های ارتباط با دیتابیس در entity framework

    سلام و عرض ادب خدمت برنامه نویسان عزیز

    همانطور که از عنوان تاپیک مشخص هست به دنبال این هستم که تفاوت های روش هایی که برای ارتباط با دیتابیس در انتیتی فریمورک وجود داره رو از لحاظ کاربردی بررسی کنم

    الان میدونیم که تا نسخه 6 انتیتی فریمورک 3 روش برای ارتباط وجود دارد :
    Database-First, Model-First, Code-First

    تا اونجایی که مطالعه کردم انگار دو روش دیتابیس فرست و Model-First دیگر منسوخ شده است و همه جا از کدفرست استفاده میشود.

    اخرین نسخه انتیتی فریمورک هم همان نسخه Entity Framework Core 1.0 هستش که روش کدفرست رو دنبال میکند.

    سوالاتی که در این باره داشتم این هستش که :

    - چگونه دستوراتی که با 3 روش Database-First, Model-First, Code-First نوشته شده است را از هم تشخیص بدیم ؟ روش کدنویسی linq هم انگار شبیه انتیتی فریمورک هست و من این 4 روش رو وقتی در کدنویسی میبنیم تفاوتهاشونو که مربوط به کدام روش هستند را نتونستم تشخیص بدم.

    - تفاوت این 3 روش از لحاظ سرعت و لود دیتابیس به چه صورت هست ؟ حال چه اطلاعات دیتابیس حجیم باشید و یا چه کم حجم باشد کدام روش مناسبتر هست؟

    - شما از کدام روش استفاده میکنید ؟ کلا ایا بریم سمت کد فرست ؟

    ممنون میشوم دراین باره راهنمایی کنید.
    آخرین ویرایش به وسیله samiasoft : پنج شنبه 28 دی 1396 در 19:13 عصر

  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    برای اینکه تفاوت رو متوجه بشید بهتره شروع کنید با هر کدوم کار کردن و یه پروژه تستی زدن خودتون خواهید فهمید.
    حالت linq رو کلا کنار بگذارید.
    اما به لحاظ سرعت هم تکنیک هایی وجود داره که میشه بصورت تنظیمات اعمال کرد و هم اینکه حوه کوئری نویسی ها مهمه یعنی شما برای هر کاری چطوری کوئری نویسی کنید(منظور همون fluent یا linq to sql) نویسی کنید خیلی توی performance و سرعت مهمه.
    اینکه چه روشی انتخاب بشه هنوز نمیشه قطعا گفت که بین روشهای ef کدوم بهتره هر شخصی نسبت به کارکرد، راحتی ، سرعت توسعه و عوامل دیگه میره سراغ روش بهینه خودش. حتی ما خودمون در برخی پروژه ها هنوز Ado.Net استفاده میکنیم. و روی اون یک فریم ورک کوچک نوشتیم

  3. #3
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    نقل قول نوشته شده توسط parvizwpf مشاهده تاپیک
    برای اینکه تفاوت رو متوجه بشید بهتره شروع کنید با هر کدوم کار کردن و یه پروژه تستی زدن خودتون خواهید فهمید.
    حالت linq رو کلا کنار بگذارید.
    اما به لحاظ سرعت هم تکنیک هایی وجود داره که میشه بصورت تنظیمات اعمال کرد و هم اینکه حوه کوئری نویسی ها مهمه یعنی شما برای هر کاری چطوری کوئری نویسی کنید(منظور همون fluent یا linq to sql) نویسی کنید خیلی توی performance و سرعت مهمه.
    اینکه چه روشی انتخاب بشه هنوز نمیشه قطعا گفت که بین روشهای ef کدوم بهتره هر شخصی نسبت به کارکرد، راحتی ، سرعت توسعه و عوامل دیگه میره سراغ روش بهینه خودش. حتی ما خودمون در برخی پروژه ها هنوز Ado.Net استفاده میکنیم. و روی اون یک فریم ورک کوچک نوشتیم
    یک منبع خوب برای code first ممنون میشم معرفی کنید.

    همچنین خود شما کدوم روش رو در انتیتی میپسندید. خودم که عاشق ado.net هستم

  4. #4

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    یک منبع خوب برای code first ممنون میشم معرفی کنید.

    همچنین خود شما کدوم روش رو در انتیتی میپسندید. خودم که عاشق ado.net هستم
    حتما برین سمت کد فرست، عاشقش میشین و ado.net قبلی رو کلا میذارین کنار، همه چی با کد نویسیه دیگه لازم نیس واسه طراحی و روابط و ایندکس و اینجور چیزا هی برین توی sql server همه اینهارو سمت کد نویسی سی شارپ و توی کلاس ها مدیریت میکنین، کار با کدفرست واقعا لذت بخشه پیشنهاد میکنم سریعا سویچ کنین روی کدفرست

  5. #5
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    حتما برین سمت کد فرست، عاشقش میشین و ado.net قبلی رو کلا میذارین کنار، همه چی با کد نویسیه دیگه لازم نیس واسه طراحی و روابط و ایندکس و اینجور چیزا هی برین توی sql server همه اینهارو سمت کد نویسی سی شارپ و توی کلاس ها مدیریت میکنین، کار با کدفرست واقعا لذت بخشه پیشنهاد میکنم سریعا سویچ کنین روی کدفرست
    خب کاش منبعی که به نظر خودتون کامل و جامع هست برای یادگیری هم بگید. فارسی باشه چه بهتر. انگلیسیم خوب نیست.

  6. #6
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    شما چرا سری به سایت آقای نصیری نمیزنید؟
    www.dotnettips.info
    سپس برید به بخش های اول entrity framework
    من خودم بسته به کارم انتخاب میکنم

  7. #7
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    سلام الآن کدوم یکی بهتره

  8. #8
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    با سلام
    ببینید همه ی اینها بستگی به پروژتون و زمان تحویل و خیلی پارامتر های دیگه داره
    دوستان بالا توضیحات خوبی دادن که میتونید استفاده کنید یکمم من توضیح بدم
    تا اونجایی که من میدونم مایکروسافت ORM Entity رو معرفی و پیاده سازی کرد که شامل دو مدل ModelFirst و DBFirst بود که بعدش جاوا مدل CodeFirst رو معرفی کرد و مایکروسافت هم از این مدل پشتیبانی و توسعه داد چون مدل خیلی خوبی بود و الان مدل CodeFirst مایکروسافت بهتر از جاوا پیشرفت کرده و هنوز هم پشتیبانی میشه
    همونطور که دوستان گفتن Performance بستگی به کد نویسی شما داره و کلاس هایی هستند که Performance این مدل رو بالا میبرن که الان دقیقاً حضور ذهن ندارم
    توی Code First دیتابیس بدون دخالت SQL Management ساخته میشه یعنی بر اساس Fluent ها و Conventions هایی که براش تعریف میشه دیتابیس رو میسازه و توسط Migration ها اون رو بروزرسانی میکنه ولی در Database First مانند Ado.net و روش های قدیمیه دیگه شما اول دیتابیس رو درون SQL Server ایجاد میکنید و سپس بهش کانکت میشید و کد نویسی میکنید که در Code First اینطور نیست.و اینم بگم اگه Trace کنید میبینید که در نهایت کد تولید شده همون ADO.net هست و کار اصلی ORM هم همینه که برنامه نویس رو از مواجهه با کدهای طولانی و وقتگیر راحت میکنه که باعث میشه برنامه نویس درگیر منطق برنامه بشه نه کد برنامه. بخاطر همین میگن برنامه نویس صرفاً اون کسی نیست که با یک زبان برنامه نویسی کد میزنه بلکه ذهنش هست
    code first بحث های خیلی پیشرفته ای داره که اندازه یک کلاس 10-15 جلسه میشه براش وقت گذاشت ولی ORM خوب و لذت بخشی هست.
    ما هر چه به جلوتر میریم داره برنامه نویسی آسون تر میشه و توصیه بزرگان هست که برنامه نویسی برای همه... چون یک جور ورزش ذهنی هست و جهل و کمتر و از بین میبره
    بحث به کجا کشیده شد :)
    همونطور که همون اول گفتم بستگی به پروژتون داره مثلاً برای یک دفتر تلفن ساده یا چند فرمی و یا زمان کم، نمیاین از Code First استفاده کنند و میاین DatabaseFirst استفاده میکنند البته با CodeFirst هم میشه... حتی در بعضی از قسمت های نرم افزار هم شخصاً از ADO.Net استفاده میکنم
    در جواب سازنده تاپیک هم که گفت فرق بین مدل های Entity Framework رو متوجه نمیشم بگم که روش کد نویسی در سه روش (البته model first کار نکردم ولی تا اونجایی که میدونم) فرقی نداره یعنی Insert-Delete-Update-Search و ... به یک شکل هست فقط در Code First کلاس های بیشتری دخیل هستن و Configure هایی داره برای ایجاد پایگاه داده
    در خصوص منابع هم قبلاً توی تاپیکی منابعی معرفی کردم (انگلیسی) که بد نیستند میتونید جستجو کنید
    امیدوارم این پست مفید باشه
    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  9. #9
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    یک سوال برای من پیش اومده من هنوز با Entity Framework کار نکردم

    فرض کنید یک جدول داریم که اطلاعات اشخاص همراه با تصویرشون ذخیره شده. و مثلا اطلاعات یک میلیون نفر رو ذخیره کردیم.
    حالا یک جایی می خواهیم این اطلاعات رو لود کنیم ولی نیازی به فیلد تصویر نداریم. با توجه به اینکه حجم اطلاعات تصویر یک میلیون نفر خیلی قابل توجه میشه توی ado.net خیلی راحت می تونیم یک کوئری بزنیم یا استورپروسیجر بنویسیم و با یک سلکت ساده فقط اون فیلدهایی که نیاز داریم رو بازیابی کنیم که روی بحت سرعت خیلی تاثیر گذار هست.

    اما توی یکی دو تا کلیپی که من از Entity Framework دیدم که DataBase First هم بودن چون اتوماتیک کدها رو ایجاد میکنه تمامی فیلدها رو اتوماتیک انتخاب و بازیابی میکنه.
    در حالی که شما توی ado.net میتونی دو تا متد بنویسی یکی برای انتخاب لیست اطلاعات همراه با تصویر و یکی بدون تصویر و در جای مناسب از هرکدوم که نیاز دارید استفاده کنید.

    می خواستم بدونم که آیا توی Entity Framework هم ما میتونیم کنترل داشته باشیم و کوئری هامون رو به صورت کامل مثل Ado.Net کنترل کنیم

    با تشکر

  10. #10

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    نقل قول نوشته شده توسط rahmatipoor مشاهده تاپیک
    یک سوال برای من پیش اومده من هنوز با Entity Framework کار نکردم

    فرض کنید یک جدول داریم که اطلاعات اشخاص همراه با تصویرشون ذخیره شده. و مثلا اطلاعات یک میلیون نفر رو ذخیره کردیم.
    حالا یک جایی می خواهیم این اطلاعات رو لود کنیم ولی نیازی به فیلد تصویر نداریم. با توجه به اینکه حجم اطلاعات تصویر یک میلیون نفر خیلی قابل توجه میشه توی ado.net خیلی راحت می تونیم یک کوئری بزنیم یا استورپروسیجر بنویسیم و با یک سلکت ساده فقط اون فیلدهایی که نیاز داریم رو بازیابی کنیم که روی بحت سرعت خیلی تاثیر گذار هست.

    اما توی یکی دو تا کلیپی که من از Entity Framework دیدم که DataBase First هم بودن چون اتوماتیک کدها رو ایجاد میکنه تمامی فیلدها رو اتوماتیک انتخاب و بازیابی میکنه.
    در حالی که شما توی ado.net میتونی دو تا متد بنویسی یکی برای انتخاب لیست اطلاعات همراه با تصویر و یکی بدون تصویر و در جای مناسب از هرکدوم که نیاز دارید استفاده کنید.

    می خواستم بدونم که آیا توی Entity Framework هم ما میتونیم کنترل داشته باشیم و کوئری هامون رو به صورت کامل مثل Ado.Net کنترل کنیم

    با تشکر
    یک viewmodel ایجاد میکنید با پراپرتی هایی که نیاز دارید و در سلکت یه نمونه از این کلاس ایجاد کرده با مقادیر entity مقداردهی میکنید. در اینصورت فقط فیلدهای موردنظر دریافت میشوند.
    اگر از ویومدل استفاده نکنید اشیاء سلکت شده anonymous type خواهند بود.
    https://www.brentozar.com/archive/20...ramework-query

  11. #11
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: روش های ارتباط با دیتابیس در entity framework

    نقل قول نوشته شده توسط rahmatipoor مشاهده تاپیک
    یک سوال برای من پیش اومده من هنوز با Entity Framework کار نکردم

    فرض کنید یک جدول داریم که اطلاعات اشخاص همراه با تصویرشون ذخیره شده. و مثلا اطلاعات یک میلیون نفر رو ذخیره کردیم.
    حالا یک جایی می خواهیم این اطلاعات رو لود کنیم ولی نیازی به فیلد تصویر نداریم. با توجه به اینکه حجم اطلاعات تصویر یک میلیون نفر خیلی قابل توجه میشه توی ado.net خیلی راحت می تونیم یک کوئری بزنیم یا استورپروسیجر بنویسیم و با یک سلکت ساده فقط اون فیلدهایی که نیاز داریم رو بازیابی کنیم که روی بحت سرعت خیلی تاثیر گذار هست.

    اما توی یکی دو تا کلیپی که من از Entity Framework دیدم که DataBase First هم بودن چون اتوماتیک کدها رو ایجاد میکنه تمامی فیلدها رو اتوماتیک انتخاب و بازیابی میکنه.
    در حالی که شما توی ado.net میتونی دو تا متد بنویسی یکی برای انتخاب لیست اطلاعات همراه با تصویر و یکی بدون تصویر و در جای مناسب از هرکدوم که نیاز دارید استفاده کنید.

    می خواستم بدونم که آیا توی Entity Framework هم ما میتونیم کنترل داشته باشیم و کوئری هامون رو به صورت کامل مثل Ado.Net کنترل کنیم

    با تشکر
    با سلام
    همونطور که آقای Afrad گفت میشه از Anonymous Type استفاده کرد در ضمن شما حتی میتونید کوئری رو هم مثل ADO.NET به EF پاس بدید و یا از Stored Procedure ها استفاده کنید

    مثال Select در EF:

    var list = Db.Context.Customers.Where(p=>p.Address=="تهرا ن").OrderBy(p=>p.LastName).Select(p => new { p.FirstName, p.LastName,p.City.CityName }).ToList();

    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: یک شنبه 05 اردیبهشت 1395, 21:33 عصر
  2. روش های ارتباط با دیتابیس و چگونگی برخورد با همزمانی
    نوشته شده توسط csharpprogramer88 در بخش C#‎‎
    پاسخ: 9
    آخرین پست: دوشنبه 10 آذر 1393, 09:22 صبح
  3. خطا در برقراری ارتباط با دیتابیس در SQL Server 2005
    نوشته شده توسط Behrouz_Rad در بخش SQL Server
    پاسخ: 12
    آخرین پست: جمعه 20 دی 1387, 18:40 عصر
  4. ارتباط با دیتابیس در شبکه
    نوشته شده توسط amin_hz در بخش C#‎‎
    پاسخ: 4
    آخرین پست: یک شنبه 18 شهریور 1386, 08:35 صبح
  5. ارتباط با دیتابیس در delphi 2006
    نوشته شده توسط mehialdst در بخش برنامه نویسی در Delphi Prism
    پاسخ: 0
    آخرین پست: شنبه 10 دی 1384, 17:10 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •