C'est ma requête:Besoin d'aide à la conception d'une requête dans ELinq
Dim vendorId = 1, categoryId = 1
Dim styles = From style In My.Context.Styles.Include("Vendor") _
Where style.Vendor.VendorId = vendorId _
AndAlso (From si In style.StyleItems _
Where si.Item.Group.Category.CategoryId = _
categoryId).Count > 0 _
Distinct
J'ai le sentiment que je peux améliorer les performances, cuz la requête ci-dessus est (corrigez-moi si je me trompe) effectue 2 tour -trips vers le serveur; 1 fois par le comte et ensuite quand il est exécuté. Je veux envoyer cette chose de compte à la base de données de sorte qu'il ne devrait être qu'un aller-retour sur le serveur.
Même ce n'est pas la chose exacte, c'est en fait ce que je dois:
SELECT DISTINCT Style.*
FROM Style INNER JOIN
Vendor ON Style.VendorId = Vendor.VendorId INNER JOIN
StyleItem ON Style.StyleId = StyleItem.StyleId INNER JOIN
Item ON StyleItem.ItemId = Item.ItemId INNER JOIN
[Group] ON Item.GroupId = [Group].GroupId INNER JOIN
Category ON [Group].CategoryId = Category.CategoryId
WHERE (Style.VendorId = @vendorid) AND (Category.CategoryId = @CategoryId)
Je voudrais pouvoir utiliser cette procédure stockée (c.-à-fonction d'importation, etc.), mais je dois Include("Vendor")
, ce qui me contraintes pour le faire avec Linq.
Toutes sortes de suggestions seront vraiment bien accueillies!
Je ne suis pas sûr qu'il va frapper deux fois, si cela peut être une requête SQL "unique", alors il devrait probablement traduire - question intéressante cependant. Vous devriez être capable de regarder le SQL qu'il envoie (si je savais à quel point j'avais une réponse!). – Murph