ich Laufzeitfehler bin immerEnumerable.Empty <T>() .AsQueryable(); Diese Methode unterstützt die LINQ to Infrastruktureinheiten und ist nicht direkt aus dem Code verwendet werden soll
Diese Methode, die LINQ to Entities-Infrastruktur unterstützt und ist nicht soll direkt verwendet werden, von dein Code.
Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für weitere Informationen über den Fehler und wo es im Code entstanden ist.
Ausnahmedetails: System.InvalidOperationException: Diese Methode unterstützt die LINQ to Entities-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden.
Ich versuche Abfrage zu erzeugen, anstatt alle Suchkriterien zu filtern, indem alle gefundenen Datensätze auf allen Suchfeldern umfassen würde (täte OR
statt AND
).
public static IQueryable<T> ApplySearch<T>(this IQueryable<T> queryable, SearchModel search) where T : class
{
var results = Enumerable.Empty<T>().AsQueryable();
if (search != null)
{
if (search.PolicyNumber.HasValue && typeof (IPolicyNumber).IsAssignableFrom(queryable.ElementType))
{
results = results.Union(queryable.SearchByPolicyNumber(search));
}
if (search.UniqueId.HasValue && typeof (IUniqueId).IsAssignableFrom(queryable.ElementType))
{
results = results.Union(queryable.SearchByUniqueId(search));
}
if (!string.IsNullOrWhiteSpace(search.PostCode) && typeof(IPostCode).IsAssignableFrom(queryable.ElementType))
{
results = results.Union(queryable.SearchByPostCode(search));
}
}
return results;
}
Mechanismus versagt begann, als ich var results = Enumerable.Empty<T>().AsQueryable();
eingeführt, die ich brauche, leer von etwas zu beginnen.
Wie beginne ich von einem leeren Satz und dann Linq-to-Sql-Ergebnisse auf der Oberseite?
Eine Vermutung: 'queryable.Take (0)' könnte den Trick tun. Es könnte eine gute Idee sein, *** genau anzugeben, wo diese Ausnahme auftritt. – spender
@spender direkt vor '.ToList()' –
Welche '.ToList'? – spender