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

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

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

Entity Framwork איזה פחד...

מתוזמן נעוץ נעול הועבר ארכיון code613m
9 פוסטים 3 כותבים 519 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מחובר
    dovidD מחובר
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #1

    אני מרחרח שוב (פעם חמישים וכמה :)) סביב העסק הזה...

    כעת אני הולך על Code First. בדרך זו (בשונה ממודל פירסט/דטה בייס פירסט), אין כלום חוץ מקוד שלי (אין קבצי XML וסכמות ומיפוי וקונקשיין סטרינג לא קריא...)

    מה אני רוצה ממכם? איחולי הצלחה 🙂

    פורסם במקור בפורום CODE613 ב25/03/2014 20:24 (+02:00)

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

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

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

      בטח יש לך סיבה טובה למה אתה נכנס לזה ולא נשאר במה שהיית עד כעת, אשמח לשמוע אותה.
      וכמובן שיהיה לך ברכה והצלחה בע''ה.

      פורסם במקור בפורום CODE613 ב25/03/2014 20:26 (+02:00)

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

        שיש פורום אחד שאני נמצא שם הרבה וכשיש שאלה על אנטיטי אני :twisted: :oops: :evil: 😐

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

        פורסם במקור בפורום CODE613 ב25/03/2014 20:42 (+02:00)

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

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

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

          להתייאש בטח שאין לך מה, כי ברור שאנשים כמוני וכמוך כתבו את EF, ואם כן כל שכן שאנשים כמוני וכמוך יכולים 'רק' ללמוד איך להשתמש בו.
          EF לא עובד בכישוף, וגם אם הוא נובח הוא לא נושך כך שאין מקום לפחד כלל ... 😉

          על איזה מסד אתה מתנסה?

          פורסם במקור בפורום CODE613 ב25/03/2014 21:02 (+02:00)

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

            חשוב לי להגיב:
            כבר חודשים אני מתחנן כאן בפורום לעזרה באנטיטי ובקושי רב הצלחתי
            כיום אני עובד על אנטיטי וזה פשוט תענוג
            מה שכן אני הצלחתי לעבוד רק עם dataBaseFirst
            בנסיונות שלי עם codeFirst נחלתי קצת כשלונות
            לכאורה codeFirst יותר טוב כי אתה שולט בקוד שכתבת
            אבל לא נפגשתי עם זה שכ"כ קשה עם הקוד של הdataBaseFirst זה קצר וקריא
            כשאראה שאתם בקיאים בעניינים כבר אעלה לכאן את הקשיים שלי

            פורסם במקור בפורום CODE613 ב26/03/2014 12:03 (+02:00)

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

              אז בא אתאר איפה אני אוחז:

              1. הורדתי והתקנתי את הגירסה האחרונה של EF (זמין או בתוספים או בהורדה נפרדת).

              2. פתחתי פרוייקט (לא Console אלא Wpf, העדפה אישית).

              3. קליק ימני על הפרוייקט Add... אח"כ New Item... ובחרתי בADO.NET Entity Data Model.

              4. הוא יוצר כמה דברים אוטומטית שעדיין לא עמדתי על טיבם (כמה שmagicode לא אוהב כאלו דברים!).

              5. בין היתר הוא יצר דף חדש בשם Model1. מחקתי בו הכל והתחלתי לכתוב:
                (הדוגמאות בVB, כי בה אני כותב, מי שרוצה תרגום של קטע לא ברור שיבקש ואתרגם בשמחה).

                Public Class Model
                Inherits DbContext

                 Public Property Tormim As DbSet(Of Torem)
                

                End Class

                Public Class Torem
                Public Property Name As String
                End Class
                פשוט מאוד, נכון?

              6. עוד קוד קטן בשגרת לחיצה של כפתור בחלון WPF:

                Dim m As New Model()
                m.Tormim.Add(New Torem() With {.Name = "fsdfdsfsdf", .idt = Now.Millisecond})
                m.SaveChanges()

              7. הרצה ואופ. שגיאה. צריך מפתח לכל ישות. ובמחלקה שלי? אין.

              8. איך מגדירים במחלקת Torem מפתח ראשי? טוב אז בדוגמאות ברשת ראיתי שלא מגדירם ובכל אופן עובד להם. נו, אז חיקיתי את הדוגמה שלהם, בה יש מאפיין בשם id, והמנגנון של הEF מזהה לפי שמו שמטרתו לשמש כמפתח ראשי. נסיתי לשנות לככה:

                Public Class Torem
                Public Property id As Integer
                Public Property Name As String
                End Class
                עובד! כמה נחמד שהוא מבין לבד (מצד אחד לא כ"כ, אהה?). ומה אם אני רוצה ששם מאפיין המפתח יהיה שונה מid? או שיהיה מרובה שדות? או שיהיה שדה בשם id שלא משמשת כמפתח? אז בדקתי ברשת ומשתמשים בAttribut שונים למקרים כאלו ואחרים. לדוגמה, ככה יעבוד:

                Public Class Torem
                <System.ComponentModel.DataAnnotations.Key>
                Public Property MafteahRashi As Integer
                Public Property Name As String
                End Class

              9. אז מה אם זה עבד? איפה הוא שמר את העסק בכלל? טוב אז מחרוזת החיבור הדיפולטית היא זו:
                Data Source=(localdb)\v11.0;Initial Catalog=Entity.Model;Integrated Security=True;MultipleActiveResultSets=True
                ועוד לפני שממש קראתי מה כתוב בה החלטתי שאני לא ילד שמחליטים בשבילו, ואני רוצה לשים מחרוזת משלי.
                קצת בדקתי בעזרה, רחרחתי בApp.Config ומצאתי את המחרוזת. שיניתי אותה חגיגית, והרצתי שוב. הכל עבד, אבל כשפתחתי את המסד שלי, זה שציינתי במחרוזת, לא היה שם כלום.
                קצת היה מעצבן, ואז הבנתי, האלמנט בXML ששמו App.Config נראה ככה:

                <add name="Model1" connectionString="Data Source=Dovid1-pc;Initial Catalog=MyTests;Integrated Security=True" providerName="System.Data.SqlClient" />
                וזה נוצר אוטומטית בשלב 4. האריביוט Name התאים (אז...) לשם המחלקה שהוא יצר: Model1 אך אני קראתי למחלקה שלי Model. אז מבחינתו לא היה קונקשיין סטרינג מתאים אז הוא לקח (לא יודע מאיפה) את המחרוזת הרירת מחדל הזו. כששיניתי את האטריביוט Name לModel הכל הסתדר, ב"ה.

              טוב, התעייפתי. המשך יבוא...

              פורסם במקור בפורום CODE613 ב26/03/2014 15:52 (+02:00)

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

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

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

                ראיתי שנוצר אוטומטית קובץ MDF ששמו כשם הפרוייקט בכתובת הבאה:
                C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA
                ושם נשמר הכל.

                פורסם במקור בפורום CODE613 ב26/03/2014 17:45 (+02:00)

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

                  אתה יכול גם להגדיר את מחרוזת החיבור כך:

                  m.Database.Connection.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True"
                  

                  כמובן שבמקרה כזה אתה צריך ליצור קובץ DB.mdf בתיקיית היישום.
                  דבר נוסף ששמתי לב כאשר פתחתי את המסד הוא ש-MafteahRashi קיבל ערכים של 1, 2 , 3 וכו' ולא כמו שהוגדר בקוד על אלפיות השניה.

                  פורסם במקור בפורום CODE613 ב26/03/2014 19:02 (+02:00)

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

                    @דוד ל.ט.

                    1. קליק ימני על הפרוייקט Add... אח"כ New Item... ובחרתי בADO.NET Entity Data Model.
                    2. הוא יוצר כמה דברים אוטומטית שעדיין לא עמדתי על טיבם (כמה שmagicode לא אוהב כאלו דברים!).
                    3. בין היתר הוא יצר דף חדש בשם Model1. מחקתי בו הכל והתחלתי לכתוב

                    ראיתי בנתיים שבמקום ליבא ואחר כך מחוק אפשר פשוט להוסיף הפניות ל 3 הרכבות:
                    EntityFramework.dll, EntityFramework.SqlServer.dll
                    שנמצאים בכתובת בכתובת: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE

                    ולהרכבה: System.ComponentModel.DataAnnotations.dll
                    שנמצאת ברשימה הרגילה של הגדרת הפניות.

                    פורסם במקור בפורום CODE613 ב26/03/2014 19:25 (+02:00)

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

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

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

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