Je suis intéressé par le retour des appels de base de données effectués par LINQ to SQL vers le code .NET qui a généré l'appel. Par exemple, un administrateur de base de données peut craindre qu'un plan d'exécution en cache particulier ne fonctionne pas correctement. Si par exemple un DBA devait dire à un développeur pour traiter le code suivant ...Attacher un ID/Label au code généré par LINQ to SQL?
exec sp_executesql N'SELECT [t0].[CustomerID]
FROM [dbo].[Customers] AS [t0]
WHERE [t0].[ContactName] LIKE @p0
ORDER BY [t0].[CompanyName]',
'N'@p0 nvarchar(2)',@p0=N'c%'
... il est pas évident que la déclaration LINQ produit l'appel. Bien sûr, vous pouvez rechercher dans la classe "Customers" dans le contexte de données générées automatiquement, mais ce ne serait qu'un début. Avec une grande application, cela pourrait rapidement devenir ingérable.
Existe-t-il un moyen de joindre un ID ou une étiquette au code SQL généré et exécuté par LINQ to SQL? En réfléchissant à haute voix, voici une fonction d'extension appelée "TagWith" qui illustre conceptuellement ce que je suis intéressé à faire.
var customers = from c in context.Customers
where c.CompanyName.StartsWith("c")
orderby c.CompanyName
select c.CustomerID;
foreach (var CustomerID in customers.TagWith("CustomerList4"))
{
Console.WriteLine(CustomerID);
}
Si l'ID/label "CustomerList4" se retrouve dans le SQL généré automatiquement, je serais mis. Merci.