折腾几天记载一下,由于项目实际需要,从edmx生成的实体类能自动继承自定义的基类,这个基类不是从edmx文件中添加的Entityobject。
利用ADO.NET C# POCO Entity Generator With WCF Support生成的tt文件(比如model.tt)中找到<#=Accessibility.ForType(entity)#> <#=code.SpaceAfter(code.AbstractOption(entity))#>partial class <#=code.Escape(entity)#><#=code.StringBefore(" : ",code.Escape(entity.BaseType))这句,然后将code.Escape(entity.BaseType)替换成自己的abstract基类,比如CompanyName.Model.EntityBase ,注意带双引号!
修改后的tt文件类似这样<#=Accessibility.ForType(entity)#> <#=code.SpaceAfter(code.AbstractOption(entity))#>partial class <#=code.Escape(entity)#><#=code.StringBefore(" : ","CompanyName.Model.EntityBase")
当保存tt文件后,自动生成所有数据表对应的实体类,即时修改了数据表结构后也会自动生成!
如:public partial class OperateLog : CompanyName.Model.EntityBase
btw:这样做的前提是所有数据表均没有继承关系!