مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

abbas4846

عضویت از 1397/08/06

نحوه صحیح query زدن در ef

  • سه شنبه 20 آذر 1397
  • 16:16
تشکر میکنم

سلام خسته نباشید.

میخواستم بپرسم بین دو دستور زیر کدام اصولی تر و بهینه تر است ؟

db.Tbl_Users.Where(u=>u.id == 1).FirstOrDefault();

یا

db.Tbl_Users.FirstOrDefault(u=>u.id == 1);

یا دستورات دیگری مثل :

Single()--------SingleOrDefault();

و....

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • سه شنبه 20 آذر 1397
  • 16:36

دستور اول اولین رکوردی که پیدا کنه بازگردانی میکنه 

دستور دوم دنبال یک رکورد میگرده و اگه دوتا پیدا کنه یک Exception با متن Contains more than one element صادر میکنه

متد هایی که با پسوند OrDefault هم تموم میشن کارشون اینه که اگه رکورد موردنظر رو پیدا نکنن null برمیگردونند.

کاربر سایت

abbas4846

عضویت از 1397/08/06

  • سه شنبه 20 آذر 1397
  • 16:45

الان بهتره where بزنیم وشرط رو درونش قرار بدیم بعد FirstOrDefault(); بزنیم ?

یا اینکه شرط رو درون FirstOrDefault();  قرار بدیم و دیگه where نزنیم؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • سه شنبه 20 آذر 1397
  • 16:48

در نهایت در هر دو حالت یک T-SQL مشابه تولید میشه. صرفا در حالت دوم کد کوتاه تری دارید.

کاربر سایت

piter111

عضویت از 1394/10/10

  • سه شنبه 20 آذر 1397
  • 16:57

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

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)