DCSIMG
E4D Dynamics CRM blog - By Gitit Chohen ביצוע שאילתא בlinq - Dynamics CRM 2011

Dynamics CRM 2011

המלצות


פוסטים אחרונים

תגיות

לא קיימות תגיות

ארכיון

ביצוע שאילתא בlinq

להלן הסברים  מפורטים (מדי...) בתרגום חופשי:

מטרת השאילתא:

לשלוף מוצרי הצעת מחיר של הצעת מחיר מסוימת ואת קוד המוצר עבור כל מוצר הצעת מחיר ולאכסנם באובייקט ייעודי(class) שיצרנו.

לצורך השליפה יצרנו List  של אובייקטים מסוג ImportProductTableDataItem (שם הclass)

ישויות מעורבות בשאילתא : מוצר(product)  ומוצר הצעת מחיר (quotedetail).  

From  -מגדיר את הישות הראשית בשאילתא (from p in orgContext.CreateQuery("product"))

Join   מגדיר את הישות המצורפת(join qd in orgContext.CreateQuery("quotedetail"))

On   -מגדיר את הקשר בין הישויות   (on p["productid"] equals qd["productid"])שדה קוד מוצר במוצר הזמנה == לקוד המוצר(מפתח ראשי)

Where-מגדיר תנאים ופילטורים כלליים על השאילתא : שליפת מוצרי הצעת מחיר מסוימת לפי המפתח הראשי של הצעת המחיר(Guid)( qd.GetAttributeValue<Guid>("quoteid") == new Guid(m_entityId) )

Select-מגדיר את השדות הנשלפים ואכסונם באובייקט.

הסרוויס שמשתמשים לצורך השאילתא הוא: OrganizationServiceContext

OrganizationServiceContext orgContext = new OrganizationServiceContext(_serviceProxy)

 

 

צורת השליפה הזו טובה גם לשליפת ישות אחת. (בלי join)

GetAttributeValue<Guid>("quoteid") –מיועד לשליפת שדות והמרתם לtype  מסוים

לא חייבים להמיר לאובייקט את הישויות הנשלפות.

הדיפולט שהquery  מחזיר הוא IEnumerable של הישות הנשלפת וניתן להמירו לליסט או למערך או לשלוף את האובייקט הראשון\אחרון בליסט (מיועד למקרים שבהם נשלפת רשומה אחת בלבד) (FirstOrDefault())

וניתן גם לעבוד עםearly bound  (ולמי שלא מכיר את המושג- יבואו הסברים בהמשך)

לדוגמה:

 

IEnumerable<SystemUser> systemUsersInum = from systemUsers in orgContext.CreateQuery<SystemUser>()

                                                          where systemUsers.DomainName == CurrentUserName

                                                          select systemUsers;

                if (systemUsersInum.Count() > 0)

                {

                    CurrentUserId = systemUsersInum.FirstOrDefault().Id;

                }

שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 


Enter the numbers above: