So übergeben Sie einen IQueryable-Typ als Abfrage an einen Linq [geschlossen]C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 So übergeben Sie einen IQueryable-Typ als Abfrage an einen Linq [geschlossen]

Post by Anonymous »

Ich möchte den Abfrageteil des folgenden Linq als Parameter übergeben. Damit ich entscheiden kann, welche Abfrage ich möglicherweise als Parameter übergeben muss.
Zum Beispiel basierend auf dem Statuswert, der von der API-Anfrage übergeben wird, kann dieser entweder neu, Fortschritt, erledigt oder einfach null sein. Wenn null, fügen Sie keine where-Bedingung hinzu.

Code: Select all

public async Task GetData(int LitEditJobId)
{
var litEditJob = await context.LitEditJob
.Include(x => x.LitEdit)
.FirstAsync(x => x.JobId == LitEditJobId);

var LitEditTasksQuery = context.Entry(LitEditJob)
.Collection(b => b.LitEditJobTasks)
.Query();

await LitEditTasksQuery
.Where(x => x.State == "new")
.OrderBy(x => x.Id)
.Skip(10)
.Take(10)
.LoadAsync();

return litEditJob;
}
Ich habe ein paar Dinge ausprobiert, wie zum Beispiel

Code: Select all

IQueryable query = new List().AsQueryable();
//I'll add some switch case condition
query = query.Where(t => t.State == LitEditStatus.Progress).OrderBy(x => x.Id).Skip(skip).Take(size);
Übergabe der Abfrage als Parameter an die Methode. Aber nichts scheint zu funktionieren. Gibt es eine Möglichkeit, dies zu tun?

Code: Select all

public async Task GetData(int LitEditJobId, IQueryable query)
{
query = context.BulkEditJobTask.AsQueryable().Concat(query);
var litEditJob = await context.LitEditJob
.Include(x => x.LitEdit)
.FirstAsync(x => x.JobId == LitEditJobId);

var LitEditTasksQuery = context.Entry(LitEditJob)
.Collection(b => b.LitEditJobTasks)
.Query();
if (query is not null)
{
LitEditTasksQuery = query;
}
await LitEditTasksQuery.LoadAsync(cancellationToken: cancellationToken);

return litEditJob;
}
Ich bin mir nicht sicher, wie man das richtig macht. Gibt es eine Möglichkeit, die Abfrage als Parameter zu übergeben und dann Linq auszuführen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post