Çözümümde iki ayrı tablom var: Biletler ve UsersInRoles. Her bir biletin üçüncü bir masaya bakan bir teknisyeni vardır: Kullanıcılar. Ancak, Kullanıcı Tablosunda bir kullanıcı rolü kaydedilmez; UsersInRoles tablosuna kaydedilir. Şimdi tüm biletleri New Media rolüne sahip teknisyenler tarafından filtrelemem gerekiyor. Arama yaptım ve bu benim sahip olduğum ve ne çalışmadığı iki farklı yaklaşım.Başka bir tablodan Linq filtre modeli Tablo
İlk Yaklaşım:
Error 2 Argument 1: cannot convert from 'System.Guid' to 'bool' C:\Dev\HelpDesk\HelpDesk.WebUI\Controllers\TicketController.cs 561 67 HelpDesk.WebUI
Error 1 The best overloaded method match for 'System.Collections.Generic.List.Contains(bool)' has some invalid arguments C:\Dev\HelpDesk\HelpDesk.WebUI\Controllers\TicketController.cs 561 46 HelpDesk.WebUI
İkinci Yaklaşım:
var NewMediaIds = db.usersInRoles.Select(nm => nm.RoleId == new Guid(Properties.Settings.Default.NewMediaID)).ToList();
model = model.Where(t => NewMediaIds.Contains(t.TechnicianId));
ve bu hatayı alıyorum
model = model.Where(t => t.TechnicianId == db.usersInRoles.Where(u => u.RoleId == new Guid(Properties.Settings.Default.NewMediaID)).UserId);
ve bu hatayı alıyorum:
Error 3 'System.Linq.IQueryable' does not contain a definition for 'UserId' and no extension method 'UserId' accepting a first argument of type 'System.Linq.IQueryable' could be found (are you missing a using directive or an assembly reference?) C:\Dev\HelpDesk\HelpDesk.WebUI\Controllers\TicketController.cs 563 153 HelpDesk.WebUI
Fenrir, yardım için teşekkür ederim ama hala aynı hatayı alıyorum. – djblois
İkinci bir düşüncede. Ben 'model' bir liste veya IQueryable olduğunu tahmin ediyorum. Yani İlk kullanarak işe yaramaz. – Fenrir88
Nava'nın cevabı, cevabımla almayı istediğim gibi görünüyor, ancak içerdiği değişkenlerin tam olarak ne olduğunu anlamaya çalıştım. Bence çalışmalı. – Fenrir88