我有RCM和RCS类,都从RC继承,我希望该实体只生成RCM和RCS表。我的上下文类有以下方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Cliente>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("Cliente");
});
modelBuilder.Entity<Usuario>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("Usuario");
});
modelBuilder.Entity<RCS>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("RCS");
});
modelBuilder.Entity<RCM>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("RCM");
});
modelBuilder.Entity<MaterialPedido>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("MaterialPedido");
});
}
其他具有继承的类工作正常,但也生成了RC表。
RC,RCM和RCS课程。
public abstract class RC
{
[Key]
public int ID { get; set; }
[Required]
public String Numero { get; set; }
[Required(ErrorMessage = "Campo Obra é obrigatório!")]
public virtual Obra Obra { get; set; }
[Required]
public DateTime Data { get; set; }
[Required]
public Usuario Ususario { get; set; }
}
public class RCM : RC
{
public DateTime DataNecessidade { get; set; }
[Required(ErrorMessage = "Os Materiais são obrigatórios!")]
public List<MaterialRCM> Materiais { get; set; }
public RCM()
{
}
public RCM(int ID, String Numero, Obra Obra, DateTime Data, DateTime DataNecessidade, List<MaterialRCM> Materiais, int Cod_Usuario)
{
base.ID = ID;
base.Numero = Numero;
base.Obra = Obra;
base.Data = Data;
this.DataNecessidade = DataNecessidade;
this.Materiais = Materiais;
base.Ususario.ID = Cod_Usuario;
}
}
}
public class RCS : RC
{
[Required(ErrorMessage = "Campo Serviço é obrigatório!")]
public String Servico { get; set; }
public DateTime DtaInicial { get; set; }
public DateTime DtaFinal { get; set; }
public RCS()
{
}
public RCS(int ID, String Numero, Obra Obra, String Servico, DateTime Data, DateTime DtaInicial, DateTime DtaFinal, int Cod_Usuario)
{
base.ID = ID;
base.Numero = Numero;
base.Obra = Obra;
this.Servico = Servico;
base.Data = Data;
this.DtaInicial = DtaInicial;
this.DtaFinal = DtaFinal;
base.Ususario.ID = Cod_Usuario;
}
}