Abfrage der Vereine in Linq für Entity framework in .NET Ria Services

Ich habe gerade angefangen mit Linq und Linq to Entity Framewok. Auf top von, dass mit der .NET Ria services.
Mein problem ist, dass ich 2 Ordner "tables" und Artikel mit vielen vielen relationsship mit einem Dritten "connection" Tabelle FolderItem wie diese:
Abfrage der Vereine in Linq für Entity framework in .NET Ria Services

(Quelle: InsomniacGeek.com)

Abfrage der Vereine in Linq für Entity framework in .NET Ria Services

In der .NET RIA Service, domain-service, erstellen Sie eine Methode, die zurückgibt, die alle Elemente für eine bestimmte Ordner-id kennen.

In T-SQL , das wäre so etwas wie dieses:

SELECT * FROM Item i
INNER JOIN FolderItem fi ON fi.ItemID = i.ID
WHERE fi.FolderID = 123

Meine Linq-wissen ist begrenzt, aber ich wollen, so etwas zu tun:

public IQueryable<Item> GetItems(int folderID)
{
  return this.Context.Items.Where(it => it.FolderItem.ID == folderID);
}

Dies ist nicht die korrekte syntax, es gibt diese Fehlermeldung:

Nicht in der lambda-Ausdruck, der
Typ 'string', weil es nicht ein
delegate-Typ

Was ist der richtige Weg, dies zu tun (mit den Verbänden) ?

Kann ich Nutzer die .Include("FolderItem") irgendwie?

Bitte, Methode syntax nur.

PS.
Hier ist, wie es Aussehen würde mit einem Abfrage-Ausdruck:

  public IQueryable<Item> GetItemsByFolderID(int folderID)
  {
    return from it in this.Context.Items
           from fi in it.FolderItem
           where fi.Folder.ID == folderID
           select it;
  }

Die Aufgabe ist, wie würde es Aussehen mit der Methode Basierten Abfrage-Syntax?

  • Was ist falsch mit Ihrem vorgeschlagenen GetItems (außer, dass das "=" sollte "==")? Haben Sie es ausprobiert?
  • Craig, das war ein Tippfehler. Ich habe es behoben.
  • Ich nehme an das en. in der Abfrage-Ausdrucks ist auch ein Tippfehler und sollte c.? Jedenfalls, ich sehe noch nichts schrecklich falsch mit GetItems, wie Sie es geschrieben hat, aber ich werde Ihnen eine andere option unten.
Schreibe einen Kommentar