using (var db = new SmartContext())
{
var MyQuery = from idr in db.ID_SB
join tk in db.Track_SB on idr.MB_Track_ID equals tk.MB_TrackID
join talr in db.Track_Album_Reln on tk.MB_TrackID equals talr.MB_Track_ID
join tal in db.Album_SB on talr.MB_AlbumID equals tal.MB_Release_ID
orderby idr.Last_played descending
select new
{
mb = tk.MB_TrackID,
Hash = idr.Hash,
Title = tk.Title,
Album = tal.Album_Name,
Times_Played = idr.Times_played,
Last_Played = idr.Last_played
};
string artist = "";
var list = new[] { new { Hash = "", Title = "", Album = "", Artist = "", Times_Played = "", Last_Played = ""}}.ToList();
list.Clear();
foreach (var q in MyQuery)
{
int i = 0;
var art = db.Track_Artist_Reln.Where(a => a.MB_Track_ID == q.mb);
foreach (var a in art)
{
var tart = db.Artist_SB.Where(ar => ar.MB_Artist_ID == a.MB_ArtistID).Select(ar => ar.Artist_Name);
foreach (var tar in tart)
{ if (i != 0) { artist = artist + ", " + tar; } else { artist = tar; i++; } }
}
list.Add(new
{
Hash = q.Hash.ToString(),
Title = q.Title.ToString(),
Album = q.Album.ToString(),
Artist = artist.ToString(),
Times_Played = q.Times_Played.ToString(),
Last_Played = q.Last_Played.ToString(),
});
}
ListView1.ItemsSource = list;
}
करने का कोई बेहतर तरीका है कि उस समय के इस बहुत कुछ के रूप में यह खपत है के लिए किसी भी बेहतर तरीका है
इस कोड को इस मैं चाहता हूँ में उद्देश्य
में कार्य करता है पुनः प्राप्त करने के
- हैश
- शीर्षक
- ALBUMNAME
- कलाकार (एकल पंक्ति क्षेत्र कलाकार में है कि गीत के लिए सभी कलाकार युक्त)
- टाइम्स खेला बस सब कुछ के शामिल होने हो रही द्वारा
- अंतिम बार खेला
सब कुछ मैं प्राप्त करने में सक्षम हूँ कलाकार नाम
संबंधों के लिए कई लोग हैं मुख्य तालिका ID_SB, Track_SB, एल्बम_SB, Artist_SB अन्य रिश्तेदार हैं जी दोनों तालिकाओं के प्राथमिक कुंजी
एक त्वरित बात इसे सुधारने के लिए, यह आपकी पहली क्वेरी में एक संग्रह के रूप में वापस होने से मुख्य क्वेरी करने के लिए दो foreach छोरों में नेस्टेड डाटाबेस प्रश्नों चलते हैं। इससे डीबी के लिए बहुत कम यात्राएं हो सकती हैं। –
आपको * _Reln तालिकाओं से भी छुटकारा पाना चाहिए, जबकि ईएफ ने कई सालों से कई से कई रिश्तों का समर्थन किया है। –