2. לדעתי אתה טועה, אם מדובר בחיבור ישיר לDatabase סביר להניח שבכל איטרציה כזו הוא בתגובה להודעה מספר 1
מתחבר ומושך את המידע שהוא כולל את כל האובייקט. השאלה איזה סוג חיבור זה, לפי מה שזה נראה הוא יוצר את החיבור למסד כמה שורות לפני ומושך את המידע, כלומר הוא לא מחזיק את המידע בdataset או משהו בסגנון.
בכל אופן, כל עוד לא מדובר באפליקציה מטורפת עם תנועה בסדר גודל אדיר זה לא נראה לי משנה...
var relevantmyFavorits = db.newUser.Where(user => user.id == idUser).Select(u => u.myFavorits).ToList();
אם אתה רוצה ישר לעדכן אז תוכל לכתוב משהו שנקרא stored procedure ולעשות את הדברים ישירות על ה DB. כמובן שאתה יכול להכניס לטבלת myFavorits נתונים, אבל איך תקשר אותם ליוזרים?
מה שכתבת(fly) בעצם מייצר List של אובייקטים של כל הטבלה ולאחר מכן מבצע איטרציה על כל אובייקט ומחפש את ה Id הנכון.
מה ש Venom כתב מתורגם ל Sql query היות והשתמש ב LINQ. אם תפתח Profiler של Sql תוכל לראות ש EntityFramework מבצע אופטימיזציה לשאילתא ובעצם מחפש את היוזר בדומה ל
select * from table where userid = f
באותה מידה ניתן להשתמש בקוד lambda
קראתי מאמרים שבמקרים מסוימים עדיף להביא טבלה שלמה מאשר לבצע שאילתא ב Sql אבל לא במקרה הזה.