Visual Studio's T4 Code Generation: C#: Template Harness: Listing 1

A simple select stored procedure can be created from database metadata. The AppVenture Community Generation Harness (available with source code) retrieves the corresponding tables from a Managed Extensibility Framework part and loops through them calling this template once for each loop. Within the context of the harness, this template is entirely self-contained.

<pre class="codesnippet"><#@ template language="C#" debug="true" hostspecific="true" #>
<#@ output extension=".sql" #>
<#@ assembly name="CommonDatabaseContracts.dll" #>
<#@ property name="table" type="AppVenture.Common.IDbTableMetadata"  #>
<#@ import namespace="System.Collections.Generic" #> 
<#@ import namespace="AppVenture.Common" #> 
<# TemplateOutputFileName = table.Name; #>

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE Select<#= table.Name #> 

AS
BEGIN
   SET NOCOUNT ON;

SELECT <#= ConcatenateWithComma(table.TableColumns) #>
FROM <#= table.Name #>

END
GO

<#+  
string ConcatenateWithComma(IEnumerable<IDbTableColumnMetadata> list)
{
   string ret = String.Empty;
   foreach (IDbTableColumnMetadata item in list)
   {
      ret += item.Name + ", " ;
   }
   return ret.Substring(0, ret.Length - 2);
}
#>
comments powered by Disqus

Featured

  • Analyst: TypeScript Now Firmly in Top 10 Echelon (Ruby, Not So Much)

    RedMonk analyst Stephen O'Grady believes TypeScript has achieved the rare feat of firmly ensconcing itself into the top 10 echelon of his ranking, now questioning how high it might go.

  • Black White Wave IMage

    Neural Regression Using PyTorch: Training

    The goal of a regression problem is to predict a single numeric value, for example, predicting the annual revenue of a new restaurant based on variables such as menu prices, number of tables, location and so on.

  • Microsoft Ships Visual Studio 2019 v16.9 Servicing Baseline Release

    Microsoft is urging enterprises and professional coders to standardize on the new Visual Studio 2019 v16.9, a servicing baseline release that's guaranteed to receive official support for an extended period.

  • Microsoft Extends Low-Code Push with Power Fx Programming Language

    "Using formulas that are already familiar to hundreds of millions of users, Power Fx allows a broad range of people to bring skills they already know to low code solutions."

Upcoming Events