is of a type that is invalid for use as a key column in an index – Entity Framework

יום רביעי, מאי 4, 2011

  במידה ואתם משתמשים בשיטת Empty Model ב - EF, והגדרתם עמודה מסוג string שתהיה Primary Key, סביר להניח שבזמן שתעשו Generate database from model תקבלו את הודעת השגיאה:       Column 'Id' in table 'Entity1Set' is of a type that is invalid for use as a key column in an index.   כדי לפתור זאת חפשו את הגדרת העמודה בסקריפט שנוצר הוא יהיה כנראה מסוג: nvarchar(max) במקום הערך max הגדירו ערך הגיוני אחר ונסו שוב להריץ את הסקריפט, כעת זה אמור לעבוד.
אין תגובות

Entity Framework include sub path in query

יום ראשון, ינואר 9, 2011

כיצד להביא בבת אחת בעזרת Entity Framework את כל האובייקטים הקשורים. (גם את תתי האובייקטים)     כידוע EF מביא את האובייקטים הקשורים לאובייקט שלנו בזמן שנצטרך אותם, וכדי לשכנע אותו בכל זאת להביא את כל האובייקטים בזמן השאילתא נצטרך להשתמש בפונקצייה Include     context.Owners.Include("Subjects").First(x => x.OwnerKey == ownerKey);     במידה ולאובייקט Subject יש גם אובייקטים שנרצה להביא אותם בזמן השאילתא הראשית - נכתוב קוד כזה     context.Owners.Include("Subjects").Include("Subjects.SubSubjects").First(x => x.OwnerKey == ownerKey);
תגיות: , ,
2 תגובות

Entity Framework – Part 5

יום שלישי, נובמבר 17, 2009

  אז בפרק האחרון דברנו על מה ה - designer עושה מאחורי הקלעים עבור הסכמה שלנו, אפשר להאריך בנושא הסכמה עוד הרבה, אבל חשבתי שכדאי קצת לראות קוד ואיך לעבוד עם ה - EF ואחרי זה נסבך קצת את הסכמה.   היות שבסיס הנתונים שלנו כרגע ריק - אנחנו נכתוב קוד שיכניס בו נתונים ונדון בכמה נושאים.   כדי לעבוד עם EF אנחנו חייבים לייצר מופע של מחלקה שיורשת מ - ObjectContext במקרה שלנו EFLabEntities,   using (EFLabEntities context = new EFLabEntities()){  }   במקרה שלנו יהיה חכם לעשות את זה עם using כי אנחנו רוצים לייצר את ה - context להוסיף לו אובייקטים לשמור לבסיס הנתונים, וזהו. בחיים האמיתיים יתכן...
תגיות: , , ,
9 תגובות

Entity Framework – Part 4

יום רביעי, נובמבר 4, 2009

  בפרק הקודם ראינו את ה - xml שנוצר מאחורי הקלעים והבנו מה המשמעות של האלמנטים ואיך הוא מקשר בין המבנה של בסיס הנתונים לבין מבנה האובייקטים.   בפרק הנוכחי נראה את הקוד שמתחולל כתוצאה מהמודל.   תזכורת: יש לנו ישות אחת שנראת כך:   כשפתחנו את קובץ ה - edmx ב - xml editor ראינו שהוא למעשה קובץ xml. לקובץ הזה יש קובץ נוסף שנקרא Model.Designer.cs - כשנפתח אותו נראה הרבה קוד - ונסביר אותו.   החלק הראשון הוא מחלקה שיורשת מ - ObjectContext   public partial class EFLabEntities : ObjectContext {     public EFLabEntities() :             base("name=EFLabEntities", "EFLabEntities")     {         this.OnContextCreated();     }       partial void OnContextCreated();       public ObjectQuery<User> Users     {        ...
תגיות: , , ,
3 תגובות

Entity Framework – Part 3

יום חמישי, אוקטובר 29, 2009

  בפרק הקודם הגענו למצב שיש לנו טבלה אחת שממופה לטבלה כהמאפיין InternalGender הוגדר כ - private והוספנו partial class כדי לחשוף אותו כ - enum   public enum UserGender {     Male,     Female }   public partial class User {     public UserGender Gender     {         get         {             return (UserGender)this.InternalGender;         }         set         {             InternalGender = (int)value;         }     } }     נפתח את המודל בעזרת XmlEditor             מומלץ לסדר את ה - xml על ידי לחיצה על Format the whole document. (צירוף המקשים Ctrl+e+d)   לאחר מכן נלחץ קליק ימין בעכבר ונבחר ב - Outlining ואז ב- Toggle all outlining         כעת כל ה - xml יהיה מכווץ, נרחיב את...
תגיות: , , ,
אין תגובות

Entity Framework – part 2

יום ראשון, אוקטובר 25, 2009

  נמשיך בלימוד על Entity Framework.   בפרק הזה נייצר את הישות הראשונה שלנו כמובן שנעשה זאת ידני - לאחר שנבין את הקוד וה - xml שנוצרים נוכל לייבא את שאר הטבלאות שלנו בצורה אוטומטית ורק לשנות את מה שצריך, במקום לייצר ידנית את הישויות.   בפרק הקודם אמרתי שנדגים את העבודה מול northwind - בסופו של דבר אני חושב שאני מעדיף לייצר DB כלשהו שדרכו אוכל לשקף את התובנות שלי על EF, ולא להשתמש ב - DB קיים שאני צריך לכתוב את הישויות לפי המבנה שלו.   נחזור בקצרה על התהליך שעשינו בפרק הקודם. תוכלו להוריד את ה - DB עבור הפרק הנוכחי מכאן. או את...
תגיות: , , ,
4 תגובות

Entity Framework – Part 1

יום שישי, אוקטובר 23, 2009

  כמו שהבטחתי אנחנו נלמד כאן ביחד מהשלב הראשון איך לעבוד עם Entity Framework.   לצערי אני לא יכול להדגים כאן את העבודה מול ה - DB האמיתי שאני עובד מולו, לכן ההדגמה שלנו תהיה על בסיס נתונים ישן ואהוב בשם Northwind.   אז מתחילים.     נפתח Visual Studio ונייצר פרויקט Asp.NET Web Application בשם EntityFrameworkLab.   קליק ימין על הפרויקט לחיצה על Add New Item ונבחר ב - ADO.NET Entity Data Model. נקרא למודל שלנו בשם NorthwindModel         אחרי ההוספה נקבל מסך שבו נצטרך לבחור האם לייצר מודל מתוך בסיס נתונים או לייצר מודל ריק.       אני חושב שמי שיכול לבחור בבניית מודל אוטומטי מתוך בסיס נתונים זה מרצה שרוצה להדגים...
תגיות: , , ,
6 תגובות