ABA


"שגיאה עם Entity Framework ו DBGeography ב SQL"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21160 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21160
bmx-boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.8.02
2991 הודעות, 2 פידבק, 4 נקודות
   16:01   19.03.15   
אל הפורום  
  שגיאה עם Entity Framework ו DBGeography ב SQL  
 
   בניתי DB ב SQL שחלקו מכיל Strings וחלקו מכיל Ints
יש לי גם Data Type אחד שהוא geography.
https://msdn.microsoft.com/en-us/library/cc280766.aspx

בניתי ב C# תוכנית MVC 5, הכל עובד חלק.
קישרתי את ה DB הזה לתוכנית,
יצרתי Model,
יצרתי Controller,

כשאני פותח את העמוד Create של התוכנית ומנסה להוסיף ערך,
ברגע שאני לוחץ על Create אני מקבל את השגיאה הבאה:
HELP ME!!!!

כמובן שהשגיאה עוד ממשיכה למטה, אבל אני לא מצליח להבין ממנה יותר מדי לגבי איפה בדיוק הבעיה שלי..
חיפשתי קצת מידע ברשת על השגיאה
No parameterless constructor defined for this object DBGEOGRAPHY
אבל לא מצאתי משהו רלוונטי..

אם אני מוריד את העמודה geography או הופך אותה ל String לצורך העניין, הכל עובר חלק.
משמע שיש לי בעיה כלשהיא שה C# או ה Entity Framework לא מצליח להבין איך לעבוד עם ה geography הזה..

מישהו מכיר או נתקל בבעיה הזו?
בגדול אני רוצה לאחסן ב DB נתוני Lat\Long,
וממה שקראתי הכי נוח להשתמש ב geography מכיוון שאחר כך אפשר לעשות על הערכים האלה חישובים ממש מהירים..




                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  יש מצב שאתה מכניס לו אובייקט שהוא לא מסוג geography? הפצוע האנגלי 19.03.15 16:13 1
     לא, אין מצב.. bmx-boy  19.03.15 16:30 2
         אין לי ממש מושג, אולי זה יפתור: הפצוע האנגלי 19.03.15 16:40 3
             עברתי על זה.. לא מצאתי פיתרון :-\ bmx-boy  19.03.15 16:54 4
  תנסה אולי הפוך ממה שכתוב כאן fly 21.03.15 23:12 5
  תצרף יותר קוד.. VeNom  28.03.15 10:45 6

       
הפצוע האנגלי
חבר מתאריך 4.9.14
172 הודעות, דרג אמינות חבר זה
   16:13   19.03.15   
אל הפורום  
  1. יש מצב שאתה מכניס לו אובייקט שהוא לא מסוג geography?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bmx-boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.8.02
2991 הודעות, 2 פידבק, 4 נקודות
   16:30   19.03.15   
אל הפורום  
  2. לא, אין מצב..  
בתגובה להודעה מספר 1
 
   כי מה שלמעשה קורה ה View שנוצר לי, נותן לי להכניס ערכים..
String'ים למיניהם ו Int'ים למיניהם..

כשאני מוריד את ה DBGeography לחלוטין מה DB, אז כמובן שהוא לא מייצר לי בשבילו שדה..
כשאני מוסיף אותו הוא נותן לי מלא שדות למלא..
מכיוון שלא ידעתי את התשובה לכל השדות פשוט הלכתי לשורה שהכנתי ל DB באופן ידני עם הערך geography::Point(32.787822, 34.986279, 4326)

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

לדוגמא,
Wednesday, Thursday, Friday, Saturday הם String
LatLong הוא DbGeography (ניתן לראות כמה שדות הוא מייצר להכניס)
LogoLocation הוא String
Flaged הוא BOOL


וזה לצורך העניין ה Model שלי

אם אני מוריד מה Model את השדה LatLong הוא לא מייצר לי אותו כמובן גם בטופס..

אני אגיד יותר מזה,
כשאני שם BreakPoint על הפונקציה של Post Create, שאמורה להיקרא לאחר לחיצה על Create זה אפילו לא מגיע לשם כש DBGeography נמצא,
כאילו הוא לא יודע מה לעשות עם DBGeography בכלל (למרות שהוא מזהה אותו ונותן לי את כל ה Parameters שלו).
בלי ה DBGeography הוא עובד פרפקט, ומוסיף ל DB אפילו.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
הפצוע האנגלי
חבר מתאריך 4.9.14
172 הודעות, דרג אמינות חבר זה
   16:40   19.03.15   
אל הפורום  
  3. אין לי ממש מושג, אולי זה יפתור:  
בתגובה להודעה מספר 2
 
   https://msdn.microsoft.com/en-us/data/hh859721.aspx

DbGeography.FromText("POINT(-122.296623 47.640405)");
ככה נראת ההצבה שלהם, תבדוק אם אצלך זה ככה, אתה כתבת עם geography לפני הpoint אולי צריך למחוק אותו.
שוב אני לא מכיר את הנושא, אז אני בעיקר מנחש מה יכול לעשות את הבעיה, ממקווה שיעזור


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bmx-boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.8.02
2991 הודעות, 2 פידבק, 4 נקודות
   16:54   19.03.15   
אל הפורום  
  4. עברתי על זה.. לא מצאתי פיתרון :-\  
בתגובה להודעה מספר 3
 
   אני רושם Geography כ SQL Data Type,
כמו שאני רושם bit, Int, String..
Saturday varchar(50) NOT NULL,
LatLong geography NOT NULL,
LogoLocation varchar(50) NOT NULL,

וה Insert של זה, הוא:
geography::Point(32.787822, 34.986279, 4326)

לקחתי את זה מפה,
https://technet.microsoft.com/en-us/library/bb933811.aspx

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



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק, -1 נקודות
   23:12   21.03.15   
אל הפורום  
  5. תנסה אולי הפוך ממה שכתוב כאן  
בתגובה להודעה מספר 0
 
   http://stackoverflow.com/questions/20729185/entity-framework-6-and-spatial-data


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק, 2 נקודות
   10:45   28.03.15   
אל הפורום  
  6. תצרף יותר קוד..  
בתגובה להודעה מספר 0
 
   בגדול זה נראה לי הבעיה שלך:

http://stackoverflow.com/questions/1355464/asp-net-mvc-no-parameterless-constructor-defined-for-this-object

תעלה את שאר ה class..כלומר את כל ה partials האחרים שלו..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net