3
A
回答
1
是 - 你可以在T4模板執行任意有效的.NET代碼 - 模板被轉換成一個.NET類的,畢竟,然後把它編譯和執行。
你的問題是什麼?你試圖做什麼,你有多遠?路障在哪裏?
UPDATE:
我試過如下:
- 我把LINQ到SQL模型到名爲
AdventureWorksData
- 我然後創建一個新的項目(控制檯應用程序)類庫
- 我引用了
AdventureWorksData
組裝
有了這個S etup的地方,我可以寫一個T4模板是這樣的:
<#@ Template Language="C#v3.5" Debug="true" #>
<#@ Output Extension=".cs" #>
<#@ Assembly Name="System.Core.dll" #>
<#@ Assembly Name="System.Data.dll" #>
<#@ Assembly Name="System.Data.Linq.dll" #>
<#@ Assembly Name="AdventureWorksData.dll" #>
<#@ Import Namespace="System" #>
<#@ Import Namespace="System.Data" #>
<#@ Import Namespace="System.Data.Linq" #>
<#@ Import Namespace="System.Linq" #>
<#@ Import Namespace="AdventureWorksData" #>
using System;
using AdventureWorksData;
namespace AdventureWorks.Products
{
public class ProductList
{
<#
AdventureWorksDataContext ctx = new AdventureWorksDataContext();
var result = from p in ctx.Products
where p.ProductCategoryID == 5
select p;
foreach (Product product in result)
{
#>
public string <#= SanitizeName(product.Name) #> = "<#= product.ProductNumber #>/ID= <#= product.ProductID #>";
<#
}
#>
}
}
<#+
internal string SanitizeName(string input)
{
return input.Replace(" ", "_").Replace("-", "_").Replace("/", "_").Replace(".", "_").Replace(",", "_");
}
#>
我在這裏做的是枚舉的AdventureWorksLT示例數據庫中的Products
,我抓住所有產品ProductCategoryID == 5
,使用LINQ。
然後我創建一個類,它包含字符串,其中字符串變量的名稱與產品本身的(清除)名稱相對應,字符串值包含數據庫中該產品的某些信息位。如您所見,您可以很容易地將Linq-to-SQL模型和LINQ查詢合併到您的T4模板中。
相關問題
- 1. Linq-to-SQL vs T4模板
- 2. 如何在T4模板中使用Linq?
- 3. 如何執行此Linq-to-Sql連接?
- 4. Linq to SQL如何執行DeleteAllOnSubmit?
- 5. 在LINQ to SQL中執行查詢
- 6. Linq-to-SQL執行NonQuery
- 7. T4模板Linq不工作
- 8. T4模板LINQ問題
- 9. Linq to SQL FirstOrDefault不執行SQL查詢
- 10. 如何在LINQ to Entities中執行SQL「Where Exists」?
- 11. 如何在linq to sql中執行多個Group By?
- 12. 在LINQ to SQL中,如何使用max執行子查詢?
- 13. Active Record和Linq T4模板問題
- 14. 如何在T4模板中訪問Entiydatamodel
- 15. 如何在T4模板中使用DbContext?
- 16. T4模板:如何創建子模板?
- 17. LINQ to SQL推遲執行和實現
- 18. Linq to SQL立即執行查詢
- 19. 執行合併使用LINQ to SQL
- 20. 執行LINQ-to-SQL調試輸出?
- 21. 如何強制T4文本模板停止執行?
- 22. T4運行模板部署
- 23. 自動運行T4模板
- 24. 使用t4模板在運行時生成內存中的SQL
- 25. 如何在LINQ To SQL中使用.Count()?
- 26. 如何在LINQ to SQL中捕獲SqlException
- 27. IEnumerable T4模板
- 28. 如何使用LINQ to SQL執行CROSS JOIN?
- 29. 如何使用LINQ to SQL/ADO.NET獲得執行計劃
- 30. Linq-to-SQL:如何對子選項執行計數
感謝您的回覆。例如,我正在嘗試做下面的事情。我想知道如何在T4模板中設置數據庫連接(例如,使用NorthWind數據庫)。 var result = from p in db.Products 其中p.CategoryID == 5 select p; \t \t \t \t \t \t \t 的foreach WriteComment(item.ProductName)(在結果VAR項目){; – NewT4 2010-04-23 21:31:04
感謝您的示例代碼。 – NewT4 2010-04-29 16:21:30