一起谈.NET技术,Linq to SQL T4 代码生成器 (-)访问 DataContext 对象

简介: 这个工具,是在一个项目中提取出来的,现在免费提供给大家使用。本文介绍的 Linq to SQL T4 代码生成器有如下特点:1、支持 dbml 文件。能够访问 dbml 设计器中的对象。2、可能通多修改模版来生成代码。

这个工具,是在一个项目中提取出来的,现在免费提供给大家使用。

本文介绍的 Linq to SQL T4 代码生成器有如下特点:

1、支持 dbml 文件。能够访问 dbml 设计器中的对象。

2、可能通多修改模版来生成代码。

3、可以生成多个文件。比如:一个类一个文件。

准备:

1、T4 代码编辑器(goole 即可)。尽管不是必须,但是为了方便代码的编辑,还是建议安装一个。

2、下载安装 Decode_VS2008 (必须)。

开始:

1、创建一个项目。然后运行 LicenseFileGenerator.exe 生成一个名为 deco.lic 的授权文件,并添加到项目中。

 

其中 Assembly 为项目生成文件的名称,Company 为项目中的公司名称,如果没有,可以不填。在这里生的 assembly 文件名为 ConsoleApplication1.exe,因此要 Assembly 文件本框中填入的是 ConsoleApplication1.exe ,而并非 ConsoleApplication1,公司名称为空,因此可以不填。

点击 Generate 按钮后在当前路径中生成一个 deco.lic 文件。请把该文件添加到项目中去。

2、创建名为  Northwind.dbml 的文件,并禁用原来的代码生成器。选项 Northwind.dbml 文件。把 Custom Tool 选项清空(默认为 MSLinqToSQLGenerator)。

3、创建一个名为 Northwind.tt  的文件。打开 Northwind.tt 文件进行编辑。然后按保存生成代码。

内容如下:

 
 
< #@ template inherits = " ModelingTextTransformation " language = " C# " debug = " true " hostspecific = " True " # >
< #@ QuickCode processor = " DbmlProcessor " requires = " ModelFile='Northwind.dbml' " # >
< #@ output extension = " .cs " # >
< #@ import namespace = " System.Text.RegularExpressions " # >

using ALinq;
using ALinq.Mapping;

namespace < # = DataContext.ContextNamespace # >
{
public partial class < # = DataContext.Name # > : ALinq.DataContext
{
public < # = DataContext.Name # > ( string connection) :
base (connection)
{
}

< # foreach (ITable table in DataContext.Tables){ # >
public Table << # = table.Type.Name # >> < # = table.Member # >
{
get
{
return this .GetTable << # = table.Type.Name # >> ();
}
}
< # } # >
}
}

下来解释一下上面的代码。我们现在要关注的 DataContext 对象。这个对象很重要,Dbml 设计器的对象,都是通过 DataContext 对象来进行访问。你可以把它和 Dbml 设计器的中的 DataContext 对应起来。

关于是 DataContext 的成员,请参考:http://www.alinq.org/document/decode.htm

示例代码:http://files.cnblogs.com/ansiboy/ConsoleApplication1.zip

完整范例代码:http://files.cnblogs.com/ansiboy/JDataDemo_0.9.zip

目录
相关文章
|
4月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
378 3
|
3月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
4月前
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
70 2
|
4月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:实现过程与关键细节解析an3.021-6232.com
随着互联网技术的快速发展,ASP.NET作为一种广泛使用的服务器端开发技术,其与数据库的交互操作成为了应用开发中的重要环节。本文将详细介绍在ASP.NET中如何连接SQL数据库,包括连接的基本概念、实现步骤、关键代码示例以及常见问题的解决方案。由于篇幅限制,本文不能保证达到完整的2000字,但会确保
|
5月前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
450 6
|
6月前
|
算法 Java 测试技术
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
|
6月前
|
API
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
|
6月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
65 5
|
6月前
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn

热门文章

最新文章