我感興趣的是將由LINQ to SQL進行的數據庫調用追溯到生成調用的.NET代碼。例如,DBA可能會擔心特定的緩存執行計劃效果不佳。例如,如果一個DBA要告訴開發商,以解決下面的代碼...附加一個ID /標籤到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%'
...這不是很明顯這LINQ語句生成呼叫。當然你可以在自動生成的數據上下文中搜索「Customers」類,但這只是一個開始。隨着一個大型應用程序,這可能很快變得難以管理。
有沒有辦法將標識或標籤附加到由LINQ to SQL生成和執行的SQL代碼?大聲思考,這裏有一個名爲「TagWith」的擴展函數,從概念上說明了我所感興趣的事情。
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);
}
如果「CustomerList4」ID /標籤結束於自動生成的SQL中,我將被設置。謝謝。