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:
(Quelle: InsomniacGeek.com)
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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre GetItems sieht gut zu mir. Sie könnte auch tun:
Beide sollten das gleiche zurückgeben.
Können Sie die übergeordnete Entität enthalten die untergeordneten Entitäten. Es gibt 2 Dinge, die Sie tun müssen, um dies zu tun:
1) Aktualisieren Sie Ihren domain-Abfrage der Ordner und Elemente:
2) Aktualisieren Sie die Metadaten-Datei, so dass die RIA-service weiß um die Rückkehr der Vereine an den client: