如何使用T4连接到本地数据库?,我尝试这些代码但不起作用 Iam使用vs.net 2010和SQL2008进行Windows身份验证,Iam尝试连接到我的本地服务器,到该数据库获取其属性
<#@ 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"]};#>
答案 0 :(得分: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 :
...