t4模板net版本|创建代码生成器可以很简单:如何通过T4模板生成代码[下篇]

1. 如何手工将Entity Framework 4.0升级到5.0

第一步:从NuGet安装Entity Framework 5.0首先,对现有的EF4.0项目,什么都不要改,也不要删。直接从NuGet安装EF5。如果你是.NET4的项目,那实际上安装的是4.4版的DLL,所以EF5的枚举类型是不可以用的。如果你已经升级了.NET4.5,那就是完完全全的EF5。NuGet会自动给你添加引用以及配置相关的config文件。第二步:更新EDMX打开现有的EDMX文件,在空白处点击右键,选择“Add Code Generation Item”新版EF是用T4模板来生成一个个实体类的,而4.0中是撸在一个edmx里的,所以我们要选择一种模板,这里明显只有一种可选:EF 5.x DbContext Generator然后,VS会弹好几个对话框,问你敢不敢运行生成脚本。显然我们要确认运行。VS一顿小撸之后,你的新版EF实体类就生成好了:第三步:更新CUD方法现在,你的程序肯定编译不过。因为EF4.0以后,增、删、改的API变了。所以我们要对旧代码做一些改动。1. 插入操作:现在使用 context.类型.Add(具体对象) 来完成2. 删除操作:现在使用 context.类型.Remove(具体对象) 来完成3. 更新操作:现在不需要Attach了,使用 context.Entry(具体对象).State = System.Data.EntityState.Modified 来完成4. 如果你还需要ObjectSet<T>类型,必须通过一个适配器来强撸:(context as IObjectContextAdapter).ObjectContext.CreateObjectSet<类型>();再次编译程序,应该就可以用了~

2. 微软EF框架存储过程问题,VS2012+.NET4.5+EF6.1.1

我用的是5.0没这个问题,不过如果你理解T4模板的话这个问题很好解决。

这个应该是6.0重构了一些命名空间后,和VS原有的实体数据模型模板不一致了。

解决办法如下:修改你的 xx.Context.tt 文件:

if(container.FunctionImports.Any()){#>usingSystem.Data.Objects;//改成usingSystem.Data.Entity.Core.Objects;usingSystem.Data.Objects.DataClasses;usingSystem.Linq;<#}

3. .net core dbfirst 如何更新实体(是根据数据库表更新实体)

老外写了一个T4模板,用于生成实体。新建项,搜索 db,在里面修改数据库连接,然后按CTRL+S

4. C#如何手动设置AssemblyVersion("1.0.*")的生成规则

默认用时间可能有它自己的原因,包括防止版本号重复、易于生成等。

如果像你说的用编译内次数,那么至少还容得有个文件存储相应的次数吧?

查了下,有t4模板的(不知道你上面说的是不是这个),也有现成的github开源插件的,也有自定义build task的,你自己看看

stackoverflow.com/questions/43019832/auto-versioning-in-visual-studio-2017-net-core

网页链接

5. Microsoft .NET Framework 4是什么

.NET Framework 是由 Microsoft 开发的一种全面且一致的编程模型,用于生成具有视觉震撼力的用户体验、无缝的安全通信和对一系列业务流程进行建模的能力的应用程序。.NET Framework 4 将与旧的 Framework 版本并行工作。 默认情况下,基于早期版本的 Framework 的应用程序将继续在目标版本上运行。Microsoft .NET Framework 4 提供了以下新功能和改进:公共语言运行时 (CLR) 和基类库 (BCL) 的改进性能改进,包括更好的多核心支持、后台垃圾回收和服务器上的探查器附加。新的内存映射文件和数字类型。更轻松的调试,包括转储调试、Watson 小型转储、64 位的混合模式调试和代码协定。有关 CLR 和 BCL 的增强功能的完整列表,请转到此处。Visual Basic 和 C# 语言中的创新,例如 lambda 语句、隐式行继续符、动态调度和命名/可选参数。数据访问和建模的改进利用 Entity Framework,开发人员可使用 .NET 对象和语言集成查询 (LINQ) 对关系数据库进行编程。 它具有多项新功能,包括持久性忽略和 POCO 支持、外键关联、延迟加载、测试驱动开发支持、模型中的函数和新的 LINQ 运算符。 其他功能包括:带自跟踪实体的更好的 n 层支持、使用 T4 模板的可自定义的代码生成、模型首次开发、改进的设计器体验、更好的性能以及实体集的复数形式。 有关更多信息,请转到此处。WCF 数据服务是 .NET Framework 的一个组件,可以利用此服务创建基于 REST 的服务和应用程序,以便使用开放式数据协议 (OData) 在 Web 上公开和使用数据。 WCF 数据服务具有多项新功能,包括增强的 BLOB 支持、数据绑定、行计数、源自定义、投影和请求管道改进。 当前与 Microsoft Office 2010 的内置集成可将 Microsoft Office SharePoint Server 数据作为一个 OData 源公开,并使用 WCF 数据服务客户端库访问该数据源。 有关更多信息,请转到此处。ASP.NET 的增强功能对 HTML、元素 ID 和自定义 CSS 的更多控制,通过这些控制可更轻松地创建符合标准且 SEO 友好的 Web 窗体。新的动态数据功能,包括新的查询筛选器、实体模板、对 Entity Framework 4 的更丰富的支持以及可轻松应用于现有 Web 窗体的验证和模板化功能。针对新的 AJAX 库改进的 Web 窗体支持,包括对内容传递网络 (CDN) 的内置支持。有关 ASP.NET 增强功能的完整列表,请转到此处。Windows Presentation Foundation (WPF) 的改进添加对 Windows 7 多点触控、功能区控件和任务栏扩展性功能的支持。添加了对 Surface 2.0 SDK 的支持。新的业务线控件,包括图表控件、智能编辑、数据网格以及其他用于改进生成以数据为中心的应用程序的开发人员体验的控件。性能和伸缩性的改进。文本清晰度、布局像素对齐、本地化和互操作性的可视化改进。有关 WPF 的增强功能的完整列表,请转到此处。Windows 工作流 (WF) 的改进,利用这些改进,开发人员能够更好地承载工作流并与其进行交互。 这些改进包括:改进的活动编程模型、改进的设计器体验、新的流程图建模样式、展开的活动面板、工作流规则集成和新的消息相关功能。 .NET Framework 4 还显著提高了基于 WF 的工作流的性能。 有关 WF 的增强功能的完整列表,请转到此处。Windows Communication Foundation (WCF) 的改进,例如对 WCF 工作流服务的支持(可启用带消息传递活动的工作流程序)和相关支持。 此外,.NET Framework 4 还提供了新的 WCF 功能,如服务发现、路由服务、REST 支持、诊断和性能。 有关 WCF 的增强功能的完整列表,请转到此处。创新的新并行编程功能,例如并行循环支持、任务并行库 (TPL)、并行 LINQ (PLINQ) 和协调数据结构(可让开发人员利用多核处理器)。安装说明重要事项:请确保计算机上已安装最新的 Windows Service Pack 和关键更新。 若要查找安全更新,请访问 Windows Update。 如果安装的是 XP 的 64 位版本或 Windows 2003,则可能需要安装 Windows 图像处理组件。 可以在此处找到 Windows 图像处理组件的 32 位版本。 可以在此处找到 Windows 图像处理组件的 64 位版本。在此页上,找到并单击“下载”按钮以开始下载。 若只需要较小的 x86 版本的安装程序,则可以在此处找到此安装程序。 如果需要在 ia64 上进行安装,请使用在此处找到的 ia64 安装程序。若要立即开始安装,请单击“运行”。若要将下载的文件保存到计算机上,以便稍后进行安装,请单击“保存”。若要取消安装,请单击“取消”。下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=17718系统要求支持的操作系统Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3Windows XP SP3Windows Server 2003 SP2Windows Vista SP1 或更高版本Windows Server 2008(在服务器核心角色上不受支持)Windows 7Windows Server 2008 R2(在服务器核心角色上不受支持)Windows 7 SP1Windows Server 2008 R2 SP1支持的体系结构:x86x64ia64(有些功能在诸如 WPF 之类的 ia64 上不受支持)硬件要求:建议的最低要求:Pentium 1 GHz 或更快,512 MB RAM 或更大最小磁盘空间:x86 – 850 MBx64 – 2 GB必备组件:Windows Installer 3.1 或更高版本Internet Explorer 5.01 或更高版本

6. wcf rest怎样包装多参数

通过VS2010的Extension Manager,可以下载一个“WCF REST Service Template”。通过这个我们可以快速创建一个WCF REST服务。它是一个创建在Web Application工程里的服务。和前一篇介绍的WCF服务不同的是在Globel.asax中的Application_Start事件中注册服务。并且注册的"TaskService"自动成为服务的基地址,即 http://<machine_name>:<port>/TaskService/服务端直接通过Linq2Entities操作DB,为了返回jsON的数据,参数和返回值都设计为POCO类。在Linq2Entities生成代码后,又拷贝了一份进行删减修改为POCO类。(现在有一个ADO.NET POCO Generator 的t4模板,不知道能否简化我现在的做法…)

7. 创建代码生成器可以很简单:如何通过T4模板生成代码[下篇]

但是这是一种基于单个文件的解决方案,即我们必须为每一个生成的存储过程建立一个模板。如果我们提供一种基于多文件的代码生成方式,将会为编程人员带来极大的便利。借助于T4 ToolBox这个开源工具箱,多文件的SQL Generator的实现变得异常简单。[文中的例子可以从这里下载]目录二、创建自定义的Generator三、ProcereGenerator如何被使用?一、多文件代码生成器会带来多大的便利?我们先来直观的感受一下较之《上篇》提供的单一文件的代码生成器,基于多文件的代码生成解决方案会为开发人员带来多大的便利。 同样对于《上篇》创建的数据表T_PRODUCT,之前我们为了生成三个不同的存储过程,我们不得已需要创建3个不同的T4模板文件。实际上我们更需要的方式只需要创建一个T4模板,让我们的SQL Generator自动为我们生成3个包含相应存储过程的.sql附属文件,如左图所示(点击看大图)。有的时候,基于单个数据表的存储过程生成方式我们依然觉得不方便。如果我们能够在T4模板文件中指定的数据表的列表,让我们的SQL Generator为列表的每一个数据表都生成CUD三个存储过程,这样的方式更加具有吸引力。如右图所示(点击看大图),一个订单模块包含两个具有主子关系的两张表(T_ORDER和T_ORDER_DETAIL),现在我们在一个T4模板中指定这两个表明,通过SQL Generator可以帮助我们生成6个包含存储过程的.sql附属文件。甚至有的时候我们连数据表列表都无需指定,让SQL Generator为所有的表都生成相应的存储过程。我的例子中没有提供这样的功能,但是实现自来不会存在任何问题。二、创建自定义的Generator在《上篇》中我创建了一个抽象的ProcereTemplate类,以及三个基于生成CUD存储过程的具体ProcereTemplate:InsertProcereTemplate、UpdateProcereTemplate和DeleteProcereTemplate。它们都将直接服务于我们今天将要提供的基于多文件的SQL Generator。在《上篇》中,这四个Template分别定义在4个不同的TT文件中,3个具体的ProcereTemplate通过<#@include>指令将抽象ProcereTemplate模板文件包含过来。由于我们将要创建的T4模板将会使用到这四个类,如果我们用四个<#@include>指令将四个TT文件包含过来,由于T4引擎将会导致对ProcereTemplate的4次包含,最好将会导致变异问题。个人觉得这应该算是T4引擎解析包含关系的一个局限性,为了解决这个问题我们不得不抽象的ProcereTemplate和三个具体的ProcereTemplate都合并成一个TT文件。T4 ToolBox为类库中为了提供了一个抽象的T4Toolbox.Generator类用于实现多文件的代码生成。为此我们创建一个TT模板文件,定义了如下一个继承自该类的ProcereGenerator。ProcereGenerator的核心是通过属性Templates定义的类型为IEnumerable<ProcereTemplate>的ProcereTemplate列表,这个列表在存储过程中进行初始化。而对于ProcereGenerator的构造函数,处理定义了一个表示数据库连接字符串的databaseName的参数外,并以数组参数的形式指定了生成的存储过程基于的数据表名的列表。<#@ import namespace="System.Collections.Generic" #><#@ include file="ProcereTemplate.tt" #><#@ include file="T4Toolbox.tt" #><#+publicclass ProcereGenerator : Generator{public IEnumerable<ProcereTemplate> Templates{get; private set;}public ProcereGenerator(string databaseName, paramsstring[] tableNames) {if(null == tableNames || tableNames.Length == 0) {thrownew ArgumentNullException("tableNames"); } this.Templates = InitlizeTemplates(databaseName,tableNames); }private IEnumerable<ProcereTemplate> InitlizeTemplates(string databaseName, string[] tableNames) { foreach(string tableName in tableNames) {yieldreturnnew InsertProcereTemplate(databaseName, tableName);yieldreturnnew UpdateProcereTemplate(databaseName, tableName);yieldreturnnew DeleteProcereTemplate(databaseName, tableName); } }protectedoverridevoid RunCore() {foreach(ProcereTemplate tempalte inthis.Templates) { tempalte.RenderToFile(tempalte.GetProcereName() + ".sql"); } }}#>真正的存储过程的T-SQL脚本实现在重写的RunCore中。由于具体的文本转化逻辑都定义在了ProcereTemplate中了,所以在这里我们需要遍历的ProcereTemplate集合中每一个Template对象,调用RenderToFile方法将相应的存储过程的脚本写入以存储过程命名同名的.sql文件中。三、ProcereGenerator如何被使用?我们最后来看看我们创建的ProcereGenerator最终如何被应用于具体的代码生成。其实很简单,我们只需要创建相应的模板文件,通过<#@include>将定义ProcereGenerator类的TT文件包含近来,最后以代码语句调用块(<#StatementCode#>)的形式实力化该对象,并调用Run方法即可。在构造函数中指定数据库连接字符串的名称和数据表名的列表。下面是基于但表的T4模板。<#@ template language="C#" hostSpecific="true" debug="true" #><#@ include file="Templates\ProcereGenerator.tt" #><#new ProcereGenerator("TestDb","T_PRODUCT").Run();#>下面是基于多表的T4模板:<#@ template language="C#" hostSpecific="true" debug="true" #><#@ include file="Templates\ProcereGenerator.tt" #><#new ProcereGenerator("TestDb","T_ORDER","T_ORDER_DETAIL").Run();#>当你代码生成工作执行之后,会多出一个与TT文件同名的附属文件,你需要手工删除掉它。从数据到代码——通过代码生成机制实现强类型编程[上篇]从数据到代码——通过代码生成机制实现强类型编程[下篇]从数据到代码——基于T4的代码生成方式

8. Extjs 后台用 Asp.Net 的视频教程

国讯教育通用智能OA办公系统(ASP.NET七层架构+WF4.0工作流+抽象工厂+反射+Extjs3.2..)快速上手Extjs4.2并熟练搭建基于MVC4+FluentData+Spring.net和T4模板的企业级项目架构两个,哪个符合你口味

9. tangible t4 破解

http://www.Juming.com/Csdn/dx/?i=318218047434879&s=这是破解补丁 自己打上去(复制到源文件替换)就是破解版了

10. 什么是以太网适配器

以太网是在 20 世纪 70 年代研制开发的一种基带局域网技术,使用同轴电缆作为网络媒体,采用载波多路访问和冲突检测( CSMA/CD )机制,数据传输速率达到 10MBPS 。

但是如今以太网更多的被用来指各种采用 CSMA/CD 技术的局域网。以太网的帧格式与 IP 是一致的,特别适合于传输 IP 数据。以太网由于具有简单方便、价格低、速度高等。

先前物理界认为宇宙间存在一种极稀疏的介质并称之为以太,但后来实验证明并不存在所谓的以太,因为这个词是当时的产物,就像我们先前的很多不科学的命名,都是在人们为发现前的导致,虽然后来证明是不正确的,但无论是为了纪念还是其他理由,都把名字言传了下来。

(10)t4模板net版本扩展阅读

最初的以太网是采用同轴电缆来连接各个设备的。电脑通过一个叫做附加单元接口(Attachment Unit Interface,AUI)的收发器连接到电缆上。

一根简单网线对于一个小型网络来说还是很可靠的,对于大型网络来说,某处线路的故障或某个连接器的故障,都会造成以太网某个或多个网段的不稳定。

因为所有的通信信号都在共用线路上传输,即使信息只是发给其中的一个终端(destination),某台电脑发送的消息都将被所有其他电脑接收。

在正常情况下,网络接口卡会滤掉不是发送给自己的信息,接收目标地址是自己的信息时才会向CPU发出中断请求,除非网卡处于混杂模式(Promiscuous mode)。

这种“一个说,大家听”的特质是共享介质以太网在安全上的弱点,因为以太网上的一个节点可以选择是否监听线路上传输的所有信息。共享电缆也意味着共享带宽,所以在某些情况下以太网的速度可能会非常慢,比如电源故障之后,当所有的网络终端都重新启动时。


赞 (0)