תיקון: הודעת שגיאה בעת הפעלת שאילתה "LINQ ישויות" אשר משתמשת פרמטר מחרוזת או פרמטר בינארי מול מסד הנתונים של SQL Server קומפקטית בגודל 3.5 אינץ: "לא ניתן להשתמש את סוגי הנתונים ntext ותמונה היכן, נתקל, קבץ לפי, או IN....

חל על: Microsoft SQL Server Compact 3.5

סיכום


מאמר זה מתאר את הפעולות הבאות אודות מהדורה זו של התיקון החם:
  • בעיות הנפתרות על-ידי חבילת תיקון חם
  • התנאים המוקדמים להתקנת חבילת התיקון החם
  • אם עליך להפעיל מחדש את המחשב לאחר התקנת חבילת התיקון החם
  • חבילת התיקון החם מוחלף על-ידי חבילת תיקון חם אחרת
  • אם עליך לבצע שינויים כלשהם ברישום
  • הקבצים הכלולים בחבילת התיקון החם

מאפייני הבעיה


שקול את התרחיש הבא. יישום משתמש Microsoft ADO.NET ישות במסגרת ה הכלולה ב- Microsoft .NET Framework 3.5 Service Pack 1 גישה למסד נתונים של Microsoft SQL Server קומפקטי 3.5. ביישום, הפעלת שאילתה "LINQ ישויות" המשתמשת פרמטר מחרוזת או פרמטר בינארי מול מסד הנתונים. בתרחיש זה, אתה מקבל את הודעת השגיאה הבאה בעת הפעלת היישום:
אין אפשרות להשתמש את סוגי הנתונים ntext ותמונה שבו, HAVING, קבץ לפי, או המשפטים, למעט כאשר סוגי נתונים אלה נמצאים בשימוש עם LIKE או הוא פרדיקאטים NULL.

הגורם


כאשר תשתמש פרמטרים עבור שאילתה "LINQ ישויות" ביישום, אין באפשרותך לציין את סוגי הבסיסי של מסד הנתונים. הספק Framework ישות קומפקטי של SQL Server מנסה ליצור פרמטר ברמת ספק בהתבסס על ובהיבטים מודל הנתונים של הישות (EDM) של הפרמטר המקורי. דחוס של SQL Server אינו תומך בסוג הנתונים nvarchar(max) או את סוג הנתונים של varbinary(max) . לכן, כאשר הספק יבחר את סוג הנתונים עבור פרמטר של סוג הנתונים Edm.String או של סוג הנתונים Edm.Binary , הספק יש לסמן את הפרמטר כאחד מסוגי הנתונים הבאים בהתבסס על ובהיבטים EDM של הפרמטר:
  • עבור פרמטר מחרוזת, הספק בוחר את סוג הנתונים של nvarchar(4000) או את סוג הנתונים ntext .
  • עבור פרמטר בינארי, הספק בוחר את סוג הנתונים של varbinary(4000) או סוג נתונים של תמונה .
אם הספק מסמן את הפרמטר כסוג הנתונים nvarchar(4000) או כסוג הנתונים varbinary(4000) , מתרחשת שגיאה בעת ניסיון להוסיף ערכים הגדולים מ- 8,000 בייטים. בנוסף, אם הספק מסמן את הפרמטר כסוג הנתונים ntext או כסוג הנתונים התמונה , מתרחשת שגיאה אם כל פעולות שוויון, פעולות קיבוץ או פעולות המיון מבוצעים כעת על הפרמטר.

פתרון


מידע על תיקונים חמים

תיקון חם נתמך זמין מ-Microsoft. עם זאת, תיקון חם זה מיועד לפתור רק את הבעיה המתוארת במאמר זה. יש להחיל תיקון חם זה רק במערכות שהתעוררה בהן הבעיה המתוארת במאמר זה. תיקון חם זה עשוי לעבור בדיקות נוספות. לכן, אם המערכת שברשותך לא נפגעה באופן חמור מבעיה זו, מומלץ להמתין לעדכון התוכנה הבא המכיל תיקון חם זה.

אם התיקון החם זמין להורדה, ישנו סעיף "הורדת תיקון חם זמינה" בראש מאמר Knowledge Base. אם מקטע זה אינו מופיע, פנה לשירות הלקוחות והתמיכה של Microsoft כדי לקבל את התיקון החם.

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

דרישות מוקדמות

כדי להחיל תיקון חם זה, עליך להסיר את שהותקן בעבר SQL Server קומפקטי 3.5 Service Pack 1 כדי להתקין את קובץ ה-. msi אשר מסופק עם תיקון חם זה. אם לא תסיר את שהותקן בעבר SQL Server קומפקטי 3.5 Service Pack 1, תקבל הודעת שגיאה המציינת גירסה מאוחרת יותר של SQL Server קומפקטי מותקן כבר. לקבלת מידע נוסף אודות SQL Server קומפקטי 3.5 Service Pack 1, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

תיאור 955965 של SQL Server קומפקטי 3.5 Service Pack 1

מידע על הפעלה מחדש

אתה לא צריך להפעיל מחדש את המחשב לאחר החלת תיקון חם זה.

מידע בנושא רישום

אין לך לשנות את הרישום.

מידע על קובץ התיקון החם

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

הגירסה האנגלית של תיקון חם זה כוללת את תכונות הקובץ (או תכונות קובץ מתקדמות יותר) המפורטות בטבלה הבאה. התאריכים והשעות המתייחסים לקבצים הללו רשומים לפי זמן אוניברסלי מתואם (UTC). כשמציגים את פרטי הקובץ, היא מומרת לזמן המקומי. כדי לברר את הפרש השעות בין זמן UTC לזמן המקומי, השתמש בכרטיסייה אזור זמן בפריט ' תאריך ושעה ' בלוח הבקרה.
שם קובץגירסת קובץגודל קובץתאריךשעהפלטפורמה
System.data.sqlserverce.entity.dll3.5.5692.1230,48024-Sep-200806:46x86/x64/IA-64
System.data.sqlserverce.dll3.5.5692.1271,44024-Sep-200806:46x86/x64
Policy.3.5.system.data.sqlserverce.dll3.5.5692.113,39224-Sep-200806:46x86/x64
Policy.3.5.system.data.sqlserverce.entity.dll3.5.5692.113,39224-Sep-200806:46x86/x64
Sqlceca35.dll3.5.5692.1343,10424-Sep-200808:07x86
Sqlcecompact35.dll3.5.5692.184,54424-Sep-200808:07x86
Sqlceer35en.dll3.5.5692.1148,03224-Sep-200808:07x86
Sqlceme35.dll3.5.5692.165,08824-Sep-200808:07x86
Sqlceoledb35.dll3.5.5692.1172,60824-Sep-200808:07x86
Sqlceqp35.dll3.5.5692.1644,16024-Sep-200808:07x86
Sqlcese35.dll3.5.5692.1348,22424-Sep-200808:07x86

מצב


Microsoft אישרה כי מדובר בבעיה במוצרי Microsoft הרשומים במקטע 'חל על'.

מידע נוסף


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

לדוגמה, בשאילתה ישות SQL הבאה, מעבד השאילתות בוחר את סוג הנתונים ntext עבור הפרמטר של שם לפני החלת תיקון חם זה.
String name = "XYZ";var q = from e in nwind.Employees
where e.First_Name = name
select e;

לאחר החלת התיקון החם, סוג הנתונים של עמודה שם _ פרטי נבחרה עבור הפרמטר של שם .

עם זאת, בדוגמה הבאה, השאילתה "LINQ ישות" נכשל מאחר שם הפרמטר אינו המושווים ואינו בשימוש עם כל ערך או עמודה.
String name = "XYZ";var q = from e in nwind.Employees
select name;

תיקון חם זה פותר גם בעיה מוכרת המתואר במסמך ה-readme לקבלת 3.5 קומפקטי של שרת SQL. לקבלת מידע נוסף, עיין בסעיף "SQL Server קומפקטי 3.5 SP1 זמן ריצה בעיות עבור ה ADO.NET ישות מסגרת" באתר האינטרנט של Microsoft בכתובות הבאות:תיקון חם זה פותר את הבעיה קשורה באופן שגוי במשפטי Transact-SQL אשר נוצרים כאשר הספק ממיר שאילתות משנה שיטתית כדי להחיל מבנים.

הערה שאילתות משנה מתואם מומרים שאילתות משנה שיטתית באופן פנימי. שאילתות משנה מתואם אינם נתמכים במהדורה זו. כאשר אתה מפעיל שאילתות אלה, מתקבלת הודעת השגיאה הבאה:
אירעה שגיאה בעת ביצוע הגדרת הפקודה. עיין בחריגה הפנימית לקבלת פרטים.
בחריגה הפנימית מכילה את ההודעה הבאה:
אירעה שגיאה בעת ניתוח מבנה הטקסט של השאילתה. [..., אסימון בטעות = כ]
הסיבה לכך היא המסגרת ישות ADO.NET מפרש את השאילתה קלט בתור שאילתה הכוללת את סוג הצירוף צלב להחיל או את סוג הצירוף החל החיצונית. אם הצד הימני של תנאי join מחזירה ערך שיטתי, הצירוף יומר בשאילתת משנה שיטתיות. הספק ADO.NET Framework ישות עבור SQL Server קומפקטי יש להמיר אותו subquery שיטתיות לשאילתת שוות ערך בעל סוג הצירוף החל החיצונית, נתמכת על-ידי דחיסה של SQL Server. עם זאת, במהדורה זו, המרה זו אינה מתבצעת כראוי. לדוגמה, מתרחשת שגיאה עבור השאילתה הבאה במהדורה זו.
C# Sample Application:using (NorthwindEntities nwEntities = new NorthwindEntities())
{
var orders = nwEntities.Employees
.Select(employee => employee.Orders.Max(order => order.Order_ID));
foreach (var order in orders)
{
Console.WriteLine(order.ToString());
}
}

לקבלת מידע נוסף אודות הסכימה למתן שמות עבור עדכונים של SQL Server, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

חבילות עדכון הסכימה למתן שמות חדשים 822499 עבור תוכנת שרת Microsoft SQL

לקבלת מידע נוסף על מינוח עדכוני התכנה, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:
824684 תיאור המינוח הרגיל המשמש לתיאור עדכוני התוכנה של מיקרוסופט