实体框架数据库首先从基类继承模型

时间:2013-06-18 14:23:57

标签: c# entity-framework ef-database-first database-first

我正在使用Entity Framework Database First来处理db。

我有一个基类EntityBase

public class EntityBase
{        
    public Int32 Id { get; set; }
}

我有一些由EnitytFramework生成的其他类,并代表我的数据库的表,例如,“用户”类:

public class User
{
  public int32 Id{get;set;} 
  public class Name{get;set;}
  public class Age{get;set;}
}

我希望所有EF模型类都从EntityBase继承:

public class User : EntityBase

我可以手动执行此操作,方法是从User类中删除Id字段并定义继承,但在我从db更新模型后,所有手动更改都会消失。 有没有办法保持或自动添加继承到EF模型类?

1 个答案:

答案 0 :(得分:4)

如果您手动更改类,保存并编译,EF数据库首先使用t4文件,T4将再次生成类,您将丢失更改。 您必须在T4模板中进行此更改。搜索EntityClassOpening方法并更改最后一行:

_typeMapper.GetTypeName(entity.BaseType)

使用此代码:

_typeMapper.GetTypeName(entity.BaseType) ?? "EntityBaseClass"