תשכחו מכל הבלגן של ADO.NET, תשתמשו רק בDapper
-
https://github.com/StackExchange/Dapper
זה ספריה שרשמית משתמשת למעין ORM קליל. האמת ששמעתי עליה שנים אבל אני לא משוגע על ORM (זמן הקינפוג כפול מהעבודה המסורתית עם מחרוזות הפקודות והפרמטרים והתוצאות) וגם אם אני ממש צריך אני מסתדר מעולה עם EntityFramework.
אבל לאחרונה קלטתי שזו ספריה שעוזרת נורא גם ללא שום קינפוג. לא צריך לפתוח קונקשנים ולסגור, לא צריך לשתול טוקנים, לא צריך לעשות מופעי Command וDbReader. ועוד הרבה דברים נחמדים.
זהו, אני איתה, ממליץ גם לאחרים.פורסם במקור בפורום CODE613 ב12/11/2017 10:41 (+02:00)
-
אף שEF לא חף מחסרונות, אין ספק שבתכנון מערכת לך רק עליו (אלא"כ אתה באפיון מיוחד שממש מתנגש בחסרונות הללו. בביצועים למשל, הDapper ענק).
אלא שהרבה פעמים אתה ניגש לDB באופן לא מערכתי, פשוט לעשות וזהו.
אני אישית מאוד מאוד נתקל בזה כי לצערי אני עובד הרבה מול מסדים זרים ועוד באקסס, כך שEF איננה אופציה.פורסם במקור בפורום CODE613 ב12/11/2017 13:27 (+02:00)
-
דוגמה מסקריפט (שפת הסקריפט שלי היא C# כבר מזמן, במיוחד מאז שיש לי את linqpad) שאני באמצע לכתוב,
יש פה שימוש בDapper עם ValueTuple של C# 7:using (var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Users\admin\Desktop\צרפת חנוכה\Address.mdb'")) conn.Query<(string Address, double longitude, double latitude)>("SELECT Address As Item1, longitude As Item2, latitude As Item3 FROM Address").Take(10).Dump();
זה לא נח לכתוב Item1, Item2 בשאילתא, והיה מצופה שיהיה מיפוי לפי שמות כמו שנעשה במחלקות רגילות, וזה הצעה שעומדת בפני המפתחים: https://github.com/StackExchange/Dapper/issues/735
עריכה, הנה קטע הקוד In Action:
Dictionary<string, GeoCoordinate> dicAddress; using (var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Users\admin\Desktop\צרפת חנוכה\Address.mdb'") dicAddress = conn.Query<(string Address, double longitude, double latitude)> ("SELECT Address As Item1, longitude As Item2, latitude As Item3 FROM Address") .ToDictionary(q => q.Address, x => new GeoCoordinate(x.latitude, x.longitude));
אולי אתם לא מבינים מה פרץ השיתוף הזה, אבל בשבילי מדובר באלגנטיזציה עצומה של קוד בלתי נסבל.
פורסם במקור בפורום CODE613 ב13/11/2017 10:41 (+02:00)