Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie AsEnumerable<TSource>, um das als generische IEnumerable eingegebene Argument zurückzugeben.
Beispiel
In diesem Beispiel würde LINQ to SQL (mit der generischen Standard-Query) versuchen, die Abfrage in SQL zu konvertieren und auf dem Server auszuführen. Die where-Klausel verweist jedoch auf eine benutzerdefinierte clientseitige Methode (isValidProduct), die nicht in SQL konvertiert werden kann.
Die Lösung erfordert das Definieren der clientseitigen generischen IEnumerable<T>-Implementierung von where, um das generische IQueryable<T> zu ersetzen. Rufen Sie hierzu den AsEnumerable<TSource>-Operator auf.
Private Function isValidProduct(ByVal prod As Product) As Boolean
Return prod.ProductName.LastIndexOf("C") = 0
End Function
Sub ConvertToIEnumerable()
Dim db As New Northwnd("c:\northwnd.mdf")
Dim validProdQuery = _
From prod In db.Products.AsEnumerable _
Where isValidProduct(prod) _
Select prod
End Sub
private bool isValidProduct(Product prod)
{
return prod.ProductName.LastIndexOf('C') == 0;
}
void ConvertToIEnumerable()
{
Northwnd db = new Northwnd(@"c:\test\northwnd.mdf");
Program pg = new Program();
var prodQuery =
from prod in db.Products.AsEnumerable()
where isValidProduct(prod)
select prod;
}