一起谈.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

目录
相关文章
|
8月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
708 3
|
7月前
|
监控 Cloud Native 测试技术
.NET技术深度解析:现代企业级开发指南
每日激励:“不要一直责怪过去的自己,他曾经站在雾里也很迷茫”。我是蒋星熠Jaxonic,一名在代码宇宙中探索的极客旅人。从.NET Framework到.NET 8,我深耕跨平台、高性能、云原生开发,践行领域驱动设计与微服务架构,用代码书写技术诗篇。分享架构演进、性能优化与AI融合前沿,助力开发者在二进制星河中逐光前行。关注我,共探技术无限可能!
.NET技术深度解析:现代企业级开发指南
|
SQL 存储 关系型数据库
【SQL技术】不同数据库引擎 SQL 优化方案剖析
不同数据库系统(MySQL、PostgreSQL、Doris、Hive)的SQL优化策略。存储引擎特点、SQL执行流程及常见操作(如条件查询、排序、聚合函数)的优化方法。针对各数据库,索引使用、分区裁剪、谓词下推等技术,并提供了具体的SQL示例。通用的SQL调优技巧,如避免使用`COUNT(DISTINCT)`、减少小文件问题、慎重使用`SELECT *`等。通过合理选择和应用这些优化策略,可以显著提升数据库查询性能和系统稳定性。
695 9
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
572 0
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
290 6
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
335 6
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
436 3
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
197 3
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
894 13

热门文章

最新文章