Moja metoda trwa
params Expression<Func<TEntity, IQueryable<TEntity>>>[] included
jako parametry. A później używa ich w ten sposób:
IQueryable<TEntity> query = dbSet;
if(included!=null)
{
foreach(var z in included)
{
query.Include(z);
}
}
jednak nie jestem w stanie wywołać tej funkcji z powodu błędu zgłoszonego w tym wywołaniu:
Get(w=>w.Device, w=>w.DeviceUsage));
Błąd 10 Nie można niejawnie przekonwertować typu „magazyn.Models.Device” na „System.Linq.IQueryable”. Wyraźny konwersja istnieje (brakuje Ci obsady?)
Jak zmodyfikować połączenie, aby przekazać te dwa parametry?
Odpowiedzi:
3 dla odpowiedzi № 1Dołączone wyrażenia powinny być typu Expression<Func<TEntity, object>>
- służą do wyboru dołączonej nawigacji własność z encji, której dotyczy zapytanie:
params Expression<Func<TEntity, object>>[] included
Pamiętaj również, że jeśli nie przekazujesz wyrażeń do metody, tablica parametrów nie będzie miała wartości zerowej - będzie pusta. Możesz więc pominąć kontrolę zerową
IQueryable<TEntity> query = dbSet;
foreach(var path in included)
query = query.Include(path);