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

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

کاربر سایت

a.akbari

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

return id By Name

  • پنجشنبه 17 خرداد 1397
  • 11:13
تشکر میکنم

با سلام و درود فراوان خدمت استاد ارجمند و ارزشمند جناب مدائنی

در کنترل WEBAPI را ساخته‌ام در پروژه MVC

اکنون میخواهم با استفاده از Name مقدار ID را بگیرم

public United GetByID(int id)
        {
            return db.Uniteds.Find(id);
        }

 با تابع فوق ID گرفته می شود و Name را برمی‌گرداند

اکنون میخواهم Name گرفته شود و ID برگردانده شود

لطفا راهنمایی بفرمایید در صورت ممکن

با سپاس فراوان

ضمنا راهنمایی بفرمائید که اگر بخواهیم MVC را به صورت حرفه‌ای مسلط شویم به همراه WebApi

نیاز به کلاس حضوری است؟

اگر به دوره حضوری است کدام دوره را می‌بایست نزد شما طی کنیم؟

باز هم تشکر از محبت بی دریغ شما

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

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

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 17 خرداد 1397
  • 12:37

سلام 

public United GetByID(int id)
        {
            return db.Uniteds.Find(id).Name;
        }

خیر نیازی به دوره حضوری نیست 

میتونید از دوره های زیر استفاده کنید 

استفاده از Web Api در MVC

ساخت SPA در MVC با Ajax و Web Api

کاربر سایت

a.akbari

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

  • پنجشنبه 17 خرداد 1397
  • 12:54

من دقیقا بر عکس همین کدی رو که فرمودین میخوام

در واقع چیزی که من میخوام کد زیر هستش اما ویژوال استودیو ارور میگیره

 public United GetByUnitedName(string UnitedName)
        {
            return db.Uniteds.Find(UnitedName).ID;
        }

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 17 خرداد 1397
  • 13:27
public United GetByUnitedName(string UnitedName)
       {
           return db.Uniteds.First(u=>u.Name == UnitedName).ID;
       }

کاربر سایت

a.akbari

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

  • پنجشنبه 17 خرداد 1397
  • 14:03

متاسفانه با همان ارور قبلی که در تصویر مشاهده میکنید رو به رو شدم

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 17 خرداد 1397
  • 14:09

خروجی متد از نوع United است و نمیتوانید ID برگردانید 

نوع خروجی را int بزارید 

کاربر سایت

a.akbari

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

  • پنجشنبه 17 خرداد 1397
  • 15:19

ارور برطرف شد

اما ID را برنمی گرداند

در واقع تمام جدول  United را برمی گرداند

کاربر سایت

a.akbari

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

  • پنجشنبه 17 خرداد 1397
  • 15:56

استاد با کمی فشار به مغز به این نتیجه رسیدم که توسط حلقه به نتیجه برسم که موفقیت آمیز بود

اما یک مشکل دیگری که دارم این است که کد گاهی اوقات کار نمیکند

و چند با باید کلیک کنم تا نتیجه نمایش داده شود؟؟؟

    $("#drlCityP option").remove();

    var idUnited;
    $.getJSON("/API/United" , function (res) {
        $.each(res, function (key, val) {
            if (val.UnitedName == $("#drlUnitedP option:selected").text()) {
                idUnited = val.ID;
            }
        });
    });

    $.getJSON("/API/City", function (res) {
        $.each(res, function (key, val) {
            if (val.IDUnited == idUnited) {
                $("#drlCityP").append("<option>" + val.CityName + "</option>");
            }
        });
    });

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • پنجشنبه 17 خرداد 1397
  • 21:29
سلام بر بزرگواران عذر میخوام مزاحم صحبت شما و جناب مدائنی شدم اما نکته ای عارضم و اینکه اگر از حلقه استفاده کنی که بشدت کارایی پروژه را پایین اوردی برادر من. فکر کن قرار باشه بین یک میلیون رکورد حلقه بزنه دیگه واویللا.. روشی که جناب مدائنی فرمودند بهترین روش بود سعی کن با کمی تلاش با پروژه ی خودت سازگارش کنی
کاربر سایت

a.akbari

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

  • جمعه 18 خرداد 1397
  • 09:30

درست می فرمائید متاسفانه به طولانی شدن جدول در آینده فکر نکرده بودم

روشی که جناب مدائنی فرمودند نتونستم خزوجی بگیرم متاسفانه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 18 خرداد 1397
  • 10:50

به نظر میاد تجربه کمی روی web api دارید

اون آموزش ها که قرار دادم رو لطفا مشاهده فرمائید

کاربر سایت

a.akbari

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

  • جمعه 18 خرداد 1397
  • 11:16

استاد سپاس از آموزش های عالی تون

من اصلا تجربه ای از web api‌نداشتم و با وب فرم کار می کردم

در یک پروژه از شما مشورت کردم و شما web api رو به جای webform پیشنهاد کردید

که واقعا mvc +webapi واقعا به مراتب قوی‌تر و پر سرعت تر و ساده به نظر ساده‌تر است

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

چون من رو با مسئله‌ای آشنا کردید که برای من به راه تازه‌ای تبدیل شده است.

heart

نکته ای که فرمودید 

خروجی متد از نوع United است و نمیتوانید ID برگردانید 

نوع خروجی را int بزارید 

باعث برطرف شدن ارور شد اما نتوانستم خروجی بگیرم

البته شاید نتوانستم تابع رو فراخوانی کنی

کد تابع در کنترولر

public int GetByUnitedName(string UnitedName)
       {
           return db.Uniteds.First(u=>u.UnitedName == UnitedName).ID;
       }

من با دستور زیر تابع رو فراوانی کردم

$.getJSON("/API/United/"+"تهران",

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

اما متاسفانه موفق نشدم

استاد ممنون که شاگرد کم تجربه‌ای مثل من رو تحمل می‌کنید

سپاس از حوصله و توجه شما

کاربر سایت

a.akbari

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

  • جمعه 18 خرداد 1397
  • 18:49

یه نکته‌ای یادم افتاد

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

در ویدیو آموزشی استاد مدائنی این نکته اشاره نشده بود

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • جمعه 18 خرداد 1397
  • 22:30
اگر ازلاعات در جدول دیگری است از روش lazy load استفاده کن. نیاز به join هم نیست دیگر سرچ کن lazy load in entity framework code first
کاربرانی که از این پست تشکر کرده اند

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

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

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