我正在尝试更新我的数据库代码,但是在运行add-migration命令
后出现此错误One or more validation errors were detected during model generation:
ServicioTest.ErrorDispositivo: Name: Each type name in a schema must be
unique. Type name 'ErrorDispositivo' is already defined.
我尝试了很多可能的解决方案:
但是不起作用。
我的数据是
public class ModeloDatos : DbContext
{
public ModeloDatos()
: base("name=ModeloDatos")
{
}
public virtual DbSet<Dispositivos> Dispositivos { get; set; }
public virtual DbSet<Solicitud> Solicitudes { get; set; }
public virtual DbSet<Aplicacion> Aplicaciones { get; set; }
public virtual DbSet<Log> Logs { get; set; }
public virtual DbSet<ErrorDispositivo> ErroresDispositivo { get; set; }
public virtual DbSet<FormatoTemplate> FormatosTemplate { get; set; }
}
[Table("Dispositivos")]
public class Dispositivos
{
[Key]
public string DispositivoID { get; set; }
//propiedad de navegacion
public virtual ICollection<Solicitud> Solicitudes { get; set; }
}
[Table("Solicitudes")]
public class Solicitud
{
//primary key
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SolicitudID { get; set; }
public DateTime Fecha { get; set; }
public string Ip { get; set; }
public string DispositivoID { get; set; }
[ForeignKey("DispositivoID")]
public virtual Dispositivos Dispositivo { get; set; }
public Respuesta DatosRespuesta { get; set; }
}
[Table("Aplicaciones")]
public class Aplicacion
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Usuario { get; set; }
[DataType(DataType.Password)]
public string Clave { get; set; }
public Guid Codigo { get; set; }
public bool Habilitado { get; set; }
}
[Table("Logs")]
public class Log
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Descripcion { get; set; }
public string StackTrace { get; set; }
}
[ComplexType]
public class Respuesta
{
public string Codigo { get; set; }
[ForeignKey("Codigo")]
public virtual ErrorDispositivo TipoErrorDispositivo { get; set; }
public string Mensaje { get; set; }
public string FingerPrint1 { get; set; }
public string FingerPrint2 { get; set; }
}
[Table("ErrorDispositivos")]
public class ErrorDispositivo
{
[Key]
public string Codigo { get; set; }
public string Descripcion { get; set; }
}
[Table("FormatoTemplates")]
public class FormatoTemplate
{
[Key]
public int Codigo { get; set; }
public string Formato { get; set; }
}
我该如何解决这个问题?
答案 0 :(得分:0)
我认为问题在于复杂的类型和
public virtual ErrorDispositivo TipoErrorDispositivo { get; set; }
您不能在复杂类型中拥有导航属性。这应该被拉出到需要这种关系的实体。