2011-01-28 7 views
2

T4でローカルデータベースに接続するにはどうすればいいですか?これらのコードは試しても動作しません。 Windows認証でv200nとSQL2008を使用してIamがローカルサーバーに接続しようとしました。プロパティT4でデータベースに接続していますか?

<#@ template language="C#v3.5" #> 
<#@ output extension=".cs" #> 
<#@ assembly name="System.Data" #> 
<#@ assembly name="System.Xml" #> 
<#@ assembly name="Microsoft.SqlServer.ConnectionInfo" #> 
<#@ assembly name="Microsoft.SqlServer.Smo" #> 
<#@ assembly name="Microsoft.SqlServer.Management.Sdk.Sfc" #> 
<#@ import namespace="System.IO" #> 
<#@ import namespace="System.Data.SqlClient" #> 
<#@ import namespace="Microsoft.SqlServer.Management.Smo" #> 
<#@ import namespace="Microsoft.SqlServer.Management.Common" #> 


namespace T4SNUG.Entities 
{ 

<# Server server = new Server("."); 
Database db = server.Databases["Chinook"]};#> 

答えて

2

はい、これは動作するはずです。

出力ウィンドウにエラーメッセージや例外が表示されますか?

私はT4に次のコードを使用することができます。

<#@ output extension=".txt" #> 
<#@ assembly name="System.Data" #> 
<#@ assembly name="System.Core.dll" #> 
<#@ assembly name="System.Xml" #> 
<#@ assembly name="Microsoft.SqlServer.ConnectionInfo" #> 
<#@ assembly name="Microsoft.SqlServer.Smo" #> 
<#@ assembly name="Microsoft.SqlServer.Management.Sdk.Sfc" #> 
<#@ import namespace="System.IO" #> 
<#@ import namespace="System.Linq" #> 
<#@ import namespace="System.Data.SqlClient" #> 
<#@ import namespace="Microsoft.SqlServer.Management.Smo" #> 
<#@ import namespace="Microsoft.SqlServer.Management.Common" #> 


<# 
    var server = new Server(".\\SQLEXPRESS"); 
    var db = server.Databases["moviereviews"]; 
    foreach(var property in db.GetType() 
           .GetProperties() 
           .Where(p=>p.PropertyType == typeof(string))) 
    { 
#> 
     <#= property.Name #> : <#= property.GetValue(db, null) #> 
<#  
    } 
#> 

をし、それは私を与える:

Name : moviereviews 
Collation : SQL_Latin1_General_CP1_CI_AS 
DatabaseSnapshotBaseName : 
DefaultFileGroup : PRIMARY 
DefaultFileStreamFileGroup : 
DefaultFullTextCatalog : 
DefaultSchema : dbo 
MirroringPartner : 
MirroringPartnerInstance : 
MirroringWitness : 
... 
関連する問題