标签:style blog http color os io strong ar for
Text Template Transformation Toolkit
1 <#@ template debug="false" hostspecific="false" language="C#" #> 2 <#@ assembly name="System.Core" #> 3 <#@ import namespace="System.Linq" #> 4 <#@ import namespace="System.Text" #> 5 <#@ import namespace="System.Collections.Generic" #> 6 <#@ output extension=".cs" #> 7 8 public class Samsung 9 { 10 <# for(int i=1;i<5;i++) {#> 11 public string S<#=i#>{get;set;} 12 <#}#> 13 }
1 public class Samsung 2 { 3 public string S1{ get; set;} 4 public string S2{ get; set;} 5 public string S3{ get; set;} 6 public string S4{ get; set;} 7 }
1 <#@ template debug="false" hostspecific="false" language="C#" #> 2 <#@ assembly name="System.Core" #> 3 <#@ import namespace="System.Linq" #> 4 <#@ import namespace="System.Text" #> 5 <#@ import namespace="System.Collections.Generic" #> 6 <#@ output extension=".cs" #> 7 8 public class Meizu 9 { 10 <# for(int i=1;i<5;i++) {#> 11 public string MX<#=i#>{get;set;} 12 <#}#> 13 }
1 public class Meizu 2 { 3 public string MX1{ get; set;} 4 public string MX2{ get; set;} 5 public string MX3{ get; set;} 6 public string MX4{ get; set;} 7 }
那么T4是有点帅,还是很有点帅。
那么很有点帅,或者相当帅吧。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Anmutu.OA.IDAL 8 { 9 /// <summary> 10 /// 此接口抽象了DAL实例里公共方法的约束。 11 /// </summary> 12 public interface IBaseDal<T> where T: class, new () 13 { 14 T Add(T entity); 15 bool Update(T entity); 16 bool Delete(T entity); 17 int Delete( params int[] ids); 18 } 19 }
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 using Anmutu.OA.Model; 8 9 namespace Anmutu.OA.IDAL 10 { 11 /// <summary> 12 /// 创建一个接口,约定其返回类型是User类,参数是一个user实体。 13 /// </summary> 14 public interface IUserDal:IBaseDal<User> 15 { 16 17 } 18 }
1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Data.Entity; 5 using System.Linq; 6 using System.Text; 7 using System.Threading.Tasks; 8 using Anmutu.OA.Model; 9 using EntityState = System.Data.Entity.EntityState; 10 11 namespace Anmutu.OA.DAL 12 { 13 /// <summary> 14 /// 把数据库访问层的公共方法抽出来实现。 15 /// </summary> 16 /// <typeparam name="T"></typeparam> 17 public particl class BaseDal<T> where T: class, new() //类。且有一个默认的构造函数。 18 { 19 //写在这里就没做到线程实例唯一了。此处亦就用简单工厂得到上下文实例。 20 private Model.AnmutuModelContainer db = new AnmutuModelContainer(); 21 public T Add(T entity) 22 { 23 db.Set<T>().Add(entity); 24 db.SaveChanges(); 25 return entity; 26 } 27 28 public bool Update(T entity) 29 { 30 db.Entry(entity).State = EntityState.Modified; 31 return db.SaveChanges() > 0; 32 } 33 34 public bool Delete(T entity) 35 { 36 db.Entry(entity).State = EntityState.Deleted; 37 return db.SaveChanges() > 0; 38 } 39 40 public int Delete( params int[] ids) 41 { 42 foreach ( var id in ids) 43 { 44 //如若实体已经在内存中就在内存中拿,如果内存中没有则查询数据库。 45 var entity = db.Set<T>().Find(id); 46 db.Set<T>().Remove(entity); 47 } 48 return db.SaveChanges(); 49 } 50 } 51 }
1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 using Anmutu.OA.IDAL; 8 using Anmutu.OA.Model; 9 using EntityState = System.Data.Entity.EntityState; 10 11 namespace Anmutu.OA.DAL 12 { 13 public partial class UserDal : BaseDal<User>,IUserDal //这里实现接口。 14 { 15 16 } 17 }
笔者注:其中有代码少了PARTICAL关键字,如若改兴趣,你会发现是哪里的,笔者就不回去做修改了。
1 <#@ template language="C#" debug="false" hostspecific="true"#> 2 <#@ include file="EF.Utility.CS.ttinclude"#> 3 <#@ output extension=".cs"#> 4 5 <# 6 CodeGenerationTools code = new CodeGenerationTools(this); 7 MetadataLoader loader = new MetadataLoader(this); 8 CodeRegion region = new CodeRegion(this, 1); 9 MetadataTools ef = new MetadataTools(this); 10 11 string inputFile = @"..\\Anmutu.OA.Model\\AumutuModel.edmx"; 12 EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile); 13 string namespaceName = code.VsNamespaceSuggestion(); 14 EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this); 15 #> 16 17 using System; 18 using System.Collections.Generic; 19 using System.Data; 20 using System.Linq; 21 using System.Text; 22 using System.Threading.Tasks; 23 using Anmutu.OA.IDAL; 24 using Anmutu.OA.Model; 25 using EntityState = System.Data.Entity.EntityState; 26 27 namespace Anmutu.OA.DAL 28 { 29 <# 30 foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name)) 31 { 32 #> 33 public partial class <#=entity.Name#>Dal : I<#=entity.Name#>Dal 34 { 35 36 } 37 <#}#> 38 }
Text Template Transformation Toolkit
标签:style blog http color os io strong ar for
原文地址:http://www.cnblogs.com/anmutu/p/T4.html