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

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

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

אילוץ מספר תעודת זהות או מספר דרכון

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

    בטבלת לקוחות יש לי שתי עמודות אחת לתעודת זהות ואחת למספר דרכון בשביל מי שאין לו תעודת זהות כדי ל'אלץ' תקינות נתונים הוספתי אילוץ עם ביטוי כזה:

    ([TZ] IS NOT NULL AND len([TZ])=(9) OR [Passport] IS NOT NULL AND len([Passport])>=(9))
    

    עד כאן זה מצויין, הבעיה כאשר EF Code First המיר את הטבלה לקוד, אין בקוד שום רמז לאילוץ הנ"ל
    ולכן יש לי שתי שאלות:

    1. האם EF לא יודע להמיר אילוצים?
    2. מה לעשות כדי שהאילוץ הנ"ל יופיע בקוד? האם אפשר להשתמש באיזו שהיא צורה ב DataAnnotations?

    פורסם במקור בפורום CODE613 ב07/08/2016 14:25 (+03:00)

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2
      1. בקוד פירסט מתחילים מהקוד, ואתה התחלת מהDB. לגיטימי, אבל לשאול אם הוא לא יודע להמיר זה שאלה מפותלת, הוא הרי לא ממיר כלום, אדרבא הוא יוצר DB.
      2. ברור. במקרה שלך הייתי מגדיר שיש חוק לכל שדה של אורך, ויש חוק שאחד משתיהם חייב להיות מאוכלס. הכי קל לעשות זאת ע"י אימות ברמת המודל:
        http://stackoverflow.com/a/16100455/1271037
        שים לב שאי לזה תמיכה אוטומטית לצד הלקוח (JS).
        ישנה מחלקה שמקילה על העבודה בשם FluentValidation והיא גם תומכת במגוון תרחישי צד לקוח, אבל אני לא יודע אם לכזה מקרה (לפחות שדה אחד מתוך X נדרש).

      פורסם במקור בפורום CODE613 ב07/08/2016 21:21 (+03:00)

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

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

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

        2. איך אני מיישם את הדרך שהבאת בדטה גריד של WPF? יש לי שם ValidationRule שאני מגדיר בבינדיג של כל עמודה, ואין ל-ValidationRule אפשרות לדעת מה קורה בעמודה אחרת.
          עשיתי נסיון, ומימשתי במחלקה עם התעודת זהות והדרכון את הממשק IDataErrorInfo אבל מה שקרה שמיד שהמשתמש פותח רשומה חדשה בדטה גריד התאים הופכים לאדומים עוד לפני שהוא הספיק להזין משהו.

        פורסם במקור בפורום CODE613 ב07/08/2016 22:54 (+03:00)

        תגובה 1 תגובה אחרונה
        0
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #4
          1. לא אמרתי שלא.
          2. אתה פותח בDataAnnotations, ועל זה נתתי לך לינק, ומסיים בValidationRule ו/או IDataErrorInfo. על מה לענות כעת? ומה התכוונת קודם?

          פורסם במקור בפורום CODE613 ב08/08/2016 12:59 (+03:00)

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

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

          תגובה 1 תגובה אחרונה
          0
          • רחמיםר מנותק
            רחמיםר מנותק
            רחמים מורחק
            כתב ב נערך לאחרונה על ידי
            #5
            1. תראה המטרה היא שהמשתמש יקבל צבע אדום בתאים של תז והדרכון כאשר הוא משאיר את שניהם ריקים אבל לא מיד שהוא פותח רשומה חדשה, אז יש פה שני שלבים יש את השלב שבתוך הקוד מסמנים את הדרישות כדי שמאפיין מסויים יהיה תקין וזה עושים עם DataAnnotations ויש את השלב שפקדים עם הבינדינגים בודקים את התקינות של נתונים
              DataAnnotations פותר את השלב הראשון אבל בשלב השני אני נתקע
              IDataErrorInfo פותר את שני השלבים בבת אחת אבל יש לו את הבעיה שמיד שפותחים רשומה חדשה הוא מוציא שגיאה

            פורסם במקור בפורום CODE613 ב08/08/2016 13:19 (+03:00)

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

              כלומר זה שאלה חדשה? כי לא דובר על IDataErrorInfo בשאלה הפותחת, ולכאורה כל מה שנשאל שמה נענה, לא כן?

              אנא הראה את הקוד של הIDataErrorInfo, נסה להפוך אותו למינימלי ורלוונטי.

              פורסם במקור בפורום CODE613 ב08/08/2016 13:33 (+03:00)

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

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

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

                כן לפי הנוסח ששאלתי הכל נענה [אבל למעשה אני עדיין בבעיה, אני חשבתי שאם יהיה לי DataAnnotations אני יהיה מסודר כי אני אבדוק עם ValidationRule אם הערך שהבינדינג שולח לבדיקה תואם ל DataAnnotations אבל מה שהתברר שזה טוב כאשר אני בודק ערך בודד אבל במקרה שלי צריך לבדוק שני ערכים והבינדיג מביא לי לבדיקה רק ערך אחד.]

                והנה המימוש

                Public Class Castomer
                    Implements IDataErrorInfo
                
                    <StringLength(9, MinimumLength:=9)>
                    Public Property TZ As String
                
                    <StringLength(20, MinimumLength:=9)>
                    Public Property Passport As String
                
                    Public ReadOnly Property [Error] As String Implements System.ComponentModel.IDataErrorInfo.Error
                        Get
                            Return Nothing
                        End Get
                    End Property
                
                    Default Public ReadOnly Property Item(columnName As String) As String Implements System.ComponentModel.IDataErrorInfo.Item
                        Get
                            If columnName = "TZ" OrElse columnName = "Passport" Then
                                If TZ <> "" Then Return ""
                                If Passport <> "" Then Return ""
                                Return "יש לציין או תעודת זהות או מספר דרכון !"
                            End If
                            Return ""
                        End Get
                    End Property
                
                End Class
                

                יישר כח גדול על המאמץ לעזור לי!

                פורסם במקור בפורום CODE613 ב08/08/2016 13:49 (+03:00)

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

                  אכן איני יודע טוב איך לספק ולידציה לפקדי WPF, אני צריך לרענן את זכרוני מפה: https://blog.magnusmontin.net/2013/08/26/data-validation-in-wpf/
                  מקוה שמחר יהיה לי זמן.

                  פורסם במקור בפורום CODE613 ב08/08/2016 21:14 (+03:00)

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

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

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

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

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

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