חקור את הגישות השונות למודל ישויות במסגרת Entity Framework

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

מהי מסגרת הישויות? למה כל ההייפ?

מסגרת הישויות של מיקרוסופט היא ORM מורחב המסייע לך לבודד את מודל האובייקט של היישום שלך ממודל הנתונים. זוהי מסגרת ORM עם קוד פתוח עבור ADO.Net והיא כלולה כחלק מ- NET Framework. בשימוש בכלי ORM תוכלו להתמקד בלוגיקה העסקית של האפליקציה ולאחסן נתונים במסד הנתונים עם הרבה פחות קוד. אתה יכול לנצל ORM להמרת נתונים בין מערכות מסוג לא תואם - אתה יכול לאחסן את אובייקטי התחום שלך למסד הנתונים הבסיסי מבלי שתצטרך לדאוג לגבי המורכבויות הפנימיות של אופן שמירת הנתונים בפועל. מסגרת הישויות היא ORM בוגר של מיקרוסופט וניתן להשתמש בה עם מגוון רחב של מאגרי מידע.

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

קוד ראשון

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

החיסרון בגישה זו הוא שכל שינוי בסכמת מסד הנתונים הבסיסית יאבד; בגישה זו הקוד שלך מגדיר ויוצר את מסד הנתונים. גישת ה- Code First מאפשרת לך להשתמש ב- Entity Framework ולהגדיר את מודל היישות ללא קבצי המעצב או ה- XML. אתה יכול להשתמש בגישה POCO (Plain Old CLR Objects) כדי להגדיר את המודל וליצור את מסד הנתונים שלך.

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

 public class Product

   {

      public int ProductId { get; set; }

      public string ProductName { get; set; }

      public float Price { get; set; }

   }

לאחר מכן, עליך להגדיר הקשר נתונים מותאם אישית על ידי הרחבת מחלקת DbContext כפי שמוצג להלן.

public class Context : DbContext

   {

      public DbSet Products { get; set; }

   }

לבסוף, עליך לציין את מחרוזת החיבור בקובץ התצורה. אתה גמור!

מסד נתונים ראשון

באפשרותך להשתמש בגישה Database First אם מסד הנתונים כבר תוכנן ומוכן. בגישה זו, מודל נתוני הישויות (EDM) נוצר ממסד הנתונים הבסיסי. כדוגמה, אתה משתמש בגישה הראשונה של מסד הנתונים כאשר אתה מייצר את קבצי ה- edmx ב- Visual Studio IDE ממסד הנתונים. ניתן לבצע שינויים ידניים במסד הנתונים בקלות ותמיד תוכל לעדכן את ה- EDM במידת הצורך (למשל, אם הסכימה של מסד הנתונים הבסיסי משתנה). לשם כך, פשוט עדכן את ה- EDM ממסד הנתונים ב- Visual Studio IDE.

דוגמנית ראשונה

בגישת Model First תוכלו ליצור תחילה את ה- EDM ואז ליצור ממנו את מסד הנתונים. בדרך כלל אתה יוצר EDM ריק באמצעות אשף מודל נתוני הישויות ב- Visual Studio, מגדיר את הישויות ויחסי הגומלין שלהם ב- Visual Studio, ואז יוצר את מסד הנתונים ממודל מוגדר זה. תוכלו ליצור ישויות בקלות ולהגדיר את מערכות היחסים והאסוציאציות שלהן אצל המעצב ב- Visual Studio. באפשרותך גם לציין את המאפיין Key ואת סוגי הנתונים עבור המאפיינים עבור הישויות שלך באמצעות המעצב. אתה יכול להשתמש בכיתות חלקיות כדי ליישם תכונות נוספות בגופים שלך.

בסדר, אבל מתי כדאי להשתמש בגישה Model Model? ובכן, אם לא מחלקות הדומיין ולא מסד הנתונים מוכנים ואתה מעדיף להגדיר את מודל הנתונים באמצעות מעצב חזותי, גישה זו מתאימה לך. עם זאת, כמו בגישה קוד ראשונה, בגישה מודל ראשון שינויים ידניים במסד הנתונים יאבדו כאשר המודל מגדיר את מסד הנתונים.