让T 能有id 实现委托
必须让所有model类都继承于BaseModel和T的应用类型是BaseModel( public class BaseDAL : IBaseDAL where T : BaseModel )
1.修改表头t4模板 .tt
1>.让其他model类去掉id属性
public string Property(EdmProperty edmProperty)
{
if(_code.Escape(edmProperty)=="ID")//查找ID然后过滤掉
{
return "";
}
2>.让所有model类继承BaseModel
public string EntityClassOpening(EntityType entity)
{
return string.Format( CultureInfo.InvariantCulture, "{0} {1}partial class {2}{3}:BaseModel", //加上basemodel
Accessibility.ForType(entity),
_code.SpaceAfter(_code.AbstractOption(entity)),
_code.Escape(entity),
_code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
}
用特性让类具有拓展类共同的特性
[MetadataType(typeof(MenuExtend))]//RoleExtend和Role特性共享
public partial class Menu { }
public class MenuExtend {
[Required(ErrorMessage = "*角色名不可为空")]
[StringLength(8, ErrorMessage = "*长度不可大于6位数")]
public string Name { get; set; }
[Required(ErrorMessage = "*类型不可为空")]
public Nullable<int> Type { get; set; }
[JsonIgnore]
public virtual ICollection<RoleMenu> RoleMenu { get; set; }
[JsonIgnore]
public virtual ICollection<Menu> Menu1 { get; set; }
[JsonIgnore]
public virtual Menu Menu2 { get; set; } }