locked
מה עושים כשSELECT ..ToList לא מחזיר תוצאות RRS feed

  • שאלה

  • הגדרתי 

    IEnumerable<Papers> PapersList = (from papers in _Db.Papers
    where papers.Id == Id
    select papers ).ToList();


    ואח"כ בתצוגה אני רוצה להציג את הדפים המשוייכים לID המבוקש בforEach

     @foreach (var item in Model.PapersList)

    הצרה היא שלפעמים אין שום דף המשוייך לId המבוקש. ואז כשאני מעבירה את הנתונים לviewModel 

    אני מקבלת שגיאה : Sequence contains no elements

    בדקתי באינטרנט רוב התשובות התייחסו למצב שעושים SELECT ומחזירים בסוף First או Single ואז התשובה היתה תחזירו במקום firstOrDefault

    אבל במקרה שלי אני מחזירה ToList 

    אז לא יודעת מה אני יכולה לעשות.

    מה שאני מצפה זה שבמקרה שאין תוצאות יחזור הדיפולט ריק שלו. והforeach לא ירוץ כלל..

    יום שלישי 23 אוקטובר 2012 10:52

תשובות

  • טוב מצאתי את הבעיה.

    היא לא היתה בשורה של ההצבה אלא בשורה אח"כ..

    כשניסיתי להחליט מה יהיה הדיפולט עשיתי

    selected = PapersList.FirstOrDefault().Id

    במקום זה כתבתי:

    int paperSelected=0;
     if (PapresList.Count() >0)
                    paperSelected= PapersList.FirstOrDefault().Id;
    selected = paperSelected;           

    וכך בהשמה לviewModel לא נהיה באג.

    • הוצע כתשובה על-ידי tetitu יום חמישי 25 אוקטובר 2012 11:34
    • סומן כתשובה על-ידי Gooloosh יום חמישי 25 אוקטובר 2012 11:50
    יום שלישי 23 אוקטובר 2012 11:29

כל התגובות

  • אני חושבת שיש לך טעות.

    אם תכתבי ככה:

    List<Papers> PapersList = (from papers in _Db.Papers
    where papers.Id == Id
    select papers ).ToList();
    foreach (var item in PapersList)

    זה כן ירוץ לך.

    כשאת כותבת 

    Model.PapersList

    זה לא רץ על התוצאה שלך.

    אני חושבת את זה בגלל שכשעושים foreach כשהlist ריק, הוא פשוט מדלג על זה וממשיך יפה.

    יום שלישי 23 אוקטובר 2012 11:19
  • טוב מצאתי את הבעיה.

    היא לא היתה בשורה של ההצבה אלא בשורה אח"כ..

    כשניסיתי להחליט מה יהיה הדיפולט עשיתי

    selected = PapersList.FirstOrDefault().Id

    במקום זה כתבתי:

    int paperSelected=0;
     if (PapresList.Count() >0)
                    paperSelected= PapersList.FirstOrDefault().Id;
    selected = paperSelected;           

    וכך בהשמה לviewModel לא נהיה באג.

    • הוצע כתשובה על-ידי tetitu יום חמישי 25 אוקטובר 2012 11:34
    • סומן כתשובה על-ידי Gooloosh יום חמישי 25 אוקטובר 2012 11:50
    יום שלישי 23 אוקטובר 2012 11:29
  • מתייחסת למה שכתבת למרות שכבר מצאתי את הבעיה.

    כשהצגתי את הבעיה לא הצגתי אותה עם מלוא נתוני הרקע..

    את החלק של ההצבה בLIST אני עושה בcontroller ואח"כ שולחת אותו עם עוד פרטים לviewModel

    ולסיום הforeach רץ בדף cshtml לכן שם אני צריכה כן לרוץ Model.PaperList..

    יום שלישי 23 אוקטובר 2012 11:34