דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. עדכון שורה entity

עדכון שורה entity

מתוזמן נעוץ נעול הועבר ארכיון code613m
8 פוסטים 2 כותבים 442 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    שמואל
    כתב ב נערך לאחרונה על ידי
    #1

    איך אני יכול לעדכן פרטים שהשתנו בשורה מסויימת בבסיס הנתונים על ידי entity?
    תודה!

    פורסם במקור בפורום CODE613 ב06/04/2014 15:47 (+03:00)

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      לא הבנתי. שמירה רגילה?

      פורסם במקור בפורום CODE613 ב06/04/2014 16:33 (+03:00)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      0
      • ש מנותק
        ש מנותק
        שמואל
        כתב ב נערך לאחרונה על ידי
        #3

        לשנות פרטים בשורה לאחר שהשורה כבר שמורה בדטה בייס

        פורסם במקור בפורום CODE613 ב06/04/2014 17:11 (+03:00)

        תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          מוצאים את השורה המתאימה משנים ושומרים ככה:

          DbContext.SaveChanges().
          

          אם לקחו את האנטיטי מDbContext והDbContext לא קיים כבר בסקופ הנוכחי, אז כשיוצרים חדש צריך "לקשר" בחזרה את האובייקט לקונקסט, זה נראה לי, אדרבה תבדוק ותדווח.

          בשביל לקשר כותבים:

          DbContext.Attach(Entity)
          

          פורסם במקור בפורום CODE613 ב06/04/2014 17:28 (+03:00)

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          0
          • ש מנותק
            ש מנותק
            שמואל
            כתב ב נערך לאחרונה על ידי
            #5

            זה מה שעשיתי ולא עובד
            לא מבין מדוע

            פורסם במקור בפורום CODE613 ב06/04/2014 17:57 (+03:00)

            תגובה 1 תגובה אחרונה
            0
            • ש מנותק
              ש מנותק
              שמואל
              כתב ב נערך לאחרונה על ידי
              #6

              זה מה שעובד לי בסופו של דבר

              if (context.ID > 0)
              {
                  db.Contacts.Attach(context);
                  db.Entry(context).State = EntityState.Modified;
              }
              else
              {
                  db.Contacts.Add(context);                
              }
              db.SaveChanges();
              

              תודה לכולם
              אשמח אם מישהוא יוכל לתת הסבר לדרך הפעולה הזו

              פורסם במקור בפורום CODE613 ב06/04/2014 18:25 (+03:00)

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #7

                לפני הכל אציין שאני לא מבין למה לא עבד לך.

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

                אופן הבדיקה שלו מתבסס על השדה המפתח שהוא AutoIncerment מה שאומר שהוא 0 באנטיטי שעוד לא היה מעולם במסד, ולאחמ"כ יש לו מספור אוטומטי.
                במידה ויש מספר, ממילא המסקנה היא שמדובר בשורה קיימת, ורק צריך להגיד לDbContext שייקח אותה בחשבון (כי הDbContext שמור רק מה שהוא עצמו הביא ושינה, ואילו השורה כאן שונתה לפני שהDbContex נוצר. לכן צריך לקשר אותה לקונטקסט. גם אחרי הקישור, יש לציין לקונקסט שהיא עברה שינוי, כי לפי זה הוא מחליט אם לעדכן.

                אגב, לפי מה שקראתי, ההשמה למאפיין State עושה גם קישור בעקיפין כך שהשורה של הקישור מיותרת.

                פורסם במקור בפורום CODE613 ב06/04/2014 18:46 (+03:00)

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                0
                • ש מנותק
                  ש מנותק
                  שמואל
                  כתב ב נערך לאחרונה על ידי
                  #8

                  תודה!

                  פורסם במקור בפורום CODE613 ב06/04/2014 22:07 (+03:00)

                  תגובה 1 תגובה אחרונה
                  0

                  בא תתחבר לדף היומי!
                  • התחברות

                  • אין לך חשבון עדיין? הרשמה

                  • התחברו או הירשמו כדי לחפש.
                  • פוסט ראשון
                    פוסט אחרון
                  0
                  • דף הבית
                  • קטגוריות
                  • פוסטים אחרונים
                  • משתמשים
                  • חיפוש
                  • חוקי הפורום