我们都知道T4模板用于生成相似代码。在DBFirst和ModelFirst条件下我们很容易从.edmx下获取所有实体类和其名称,并且通过我们定义的模板和某些遍历工作为我们生成所需要的相似代码。但是CodeFirst模式下,我们没有edmx,从哪获取所有类名呢?难道要我们一个个把E ...
我们都知道T4模板用于生成相似代码。
在DBFirst和ModelFirst条件下我们很容易从.edmx下获取所有实体类和其名称,并且通过我们定义的模板和某些遍历工作为我们生成所需要的相似代码。
但是CodeFirst模式下,我们没有edmx,从哪获取所有类名呢?难道要我们一个个把Entity实体层类名写进数组里吗,十个百个千个?
解决过程:
1.使用反射获取所有类名,并将此段代码写到T4模板中。
foreach (Type t in Assembly.Load("Entity").GetTypes()) { //你对这些类信息的操作 //e.g: if (t.FullName == "Entity.baseEntity") { } else { get='_blank'>string fullName = t.FullName; int length = fullName.Length; int index = fullName.LastIndexOf('.'); string classname = fullName.Substring(index + 1, length - index - 1); nameStr += (classname) + ","; } }
原标题:CodeFirst时使用T4模板(你肯定没用过的笨方法,还望园友指教)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。