Warum fragt EF 6 die Datenbank nach allen Datensätzen mit dem folgenden Code ab?DbSet <T>. Wo (Wo). ToList() - warum SQL where-Klausel nicht enthält?
public virtual List<T> Find(Func<T, bool> where = null)
{
_db.Configuration.LazyLoadingEnabled = false;
if (where == null) throw new NullReferenceException("The 'where' parameter of the Repository.Find() method is null.");
return _dbSet.Where(where).ToList();
}
erzeugt die folgende Ausgabe
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Sequence] AS [Sequence],
[Extent1].[Description] AS [Description],
[Extent1].[Instructions] AS [Instructions],
[Extent1].[WorkCenterOperationId] AS [WorkCenterOperationId],
[Extent1].[JobId] AS [JobId],
[Extent1].[JobAssemblyId] AS [JobAssemblyId],
[Extent1].[RowVersion] AS [RowVersion]
FROM [dbo].[JobOperations] AS [Extent1]
Zwei Fragen:
- Warum ist nicht die Abfrage mit der Anweisung, wo ausgeführt?
- Wie bekomme ich die Abfrage mit der WHERE-Anweisung auszuführen?
Von Thema Frage: Was ist der Zweck, einen Standardwert von Null für den Parameter 'Where' festzulegen? – DaveParsons
Es gibt keins. :) Ich bearbeite immer noch die Methode und die Klasse, zu der sie gehört. Ich hatte ursprünglich die Idee, eine find-Anweisung mit einer optionalen where-Klausel zu verwenden, entschied mich jedoch für eine separate FindAll() -Methode, entfernte jedoch nicht den Standardwert für Find. Gute Frage. –