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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. MVC5 WebApi החרגת מאפיין ממחלקה חיצונית (EF Model) מהJson

MVC5 WebApi החרגת מאפיין ממחלקה חיצונית (EF Model) מהJson

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

    נשאלתי איך להחריג מאפיין מJson שנוצר אוטומטית ע"י WebApi.
    אם זו הייתה מחלקה רגילה, אפשר לסמן את המאפיין ע"י הAttribute של JsonIgnore:

    public class Product
    {
        public int A { get; set; }
    
        [JsonIgnore]
        public int B { get; set; }
    }
    

    אבל הבעיה שהמחלקה בכלל לא אצלנו, כי היא נוצרת אוטומטית ע"י Model Designer של EntityFramework.
    אז בעצם אנחנו רוצים לעשות Atrribute למאפיין קיים במחלקה שרק הpartial שלה חשוף לנו.
    בדיוק אתמול @clickone הראה לי שיש לזה פתרון מעניין ע"י Attribute בשם MetadataType שבעצם מאפשר להצמיד מחלקה אחרת שהגדרות מאפייניה יוחלו על המחלקה הנוכחית אם השם והסוג תואמים.
    אז קודם צריך לאתר או ליצור מחלקת partial מתאימה למחלקה שלנו (אפשר ליצור אותה בכל מקום בפרוייקט רק לשים לב שהNamespace יהיה מתאים למקור), רק בשביל להצמיד את הAttribute האמור עם ההפניה למחלקה המתאימה ששם נעשה מאפיינים זהים למקור רק עם תוספת הJsonIgnore במקרה שלנו.
    הפתרון מתואר פה: https://stackoverflow.com/questions/3782405/can-i-define-properties-in-partial-classes-then-mark-them-with-attributes-in-an

    הנה דוגמה:

    [MetadataType(typeof(TheEntityName_ApplyAttributes))]
    public partial class TheEntityName { }
    
    public partial class TheEntityName_ApplyAttributes
    {
        [JsonIgnore]
        public int B { get; set; }
    }
    

    המחלקה TheEntityName היא שמה של המחלקה שנוצרת אוטומטית, שמתי בלוק ריק כי הדבר היחיד שאנחנו צריכים פה זה ההצמדה בין המJsonIgnore ששמתי למאפיין B של TheEntityName_ApplyAttributes, למאפיין B של TheEntityName שנוצר אוטומטית מהמודל.

    מקוה שיהיה שימושי 🙂

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

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

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

      "נשאלתי"
      אני השואל הקטן

      שכוייח למורינו ורבינו רבי דוד שליט"א.

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

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

        @ארכיטקט אמר בMVC5 WebApi החרגת מאפיין ממחלקה חיצונית (EF Model) מהJson:

        "נשאלתי"
        אני השואל הקטן

        שכוייח למורינו ורבינו רבי דוד שליט"א.

        היה שווה, כדי להחזיר אותך לפורום, אחרי שנה של חופש.. 🙂

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

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

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

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