尝试创建控制器时出现以下错误。
运行所选代码生成器时出错:“无法检索”ProjectName.Models.Tecnologia“的元数据。在模型生成期间检测到一个或多个验证错误:
ProjectName.DataContexts.Estadistica:EntityType“Estadistica”没有定义键。定义此EntityType的键。 Estadisticas:EntityType:EntitySet:“Estadisticas”基于类型“Estadistica”,没有定义键。
Class Tecnologia:
public class Tecnologia
{
public int ID { get; set; }
public string Nombre { get; set; }
public List<Usuario> TutoresCorrectores { get; set; }
public List<FichaProyecto> FichasProyecto { get; set; }
}
Class Estadistica
public class Estadistica
{
public int Cantidad { get; set; }
public int Porcentaje { get; set; }
}
Class DataContexts.GestionProyectodbContext
public class GestionProyectodbContext : DbContext
{
public GestionProyectodbContext() : base("DefaultConnection")
{
}
public DbSet<Carrera> Carreras { get; set; }
public DbSet<Comentario> Comentarios { get; set; }
public DbSet<EstadoFicha> Estados { get; set; }
public DbSet<FichaProyecto> FichasProyectos { get; set; }
public DbSet<Grupo> Grupos { get; set; }
public DbSet<InformeAvance> InformesAvance { get; set; }
public DbSet<InstanciaAcademica> InstanciasAcademicas { get; set; }
public DbSet<InstanciaEvaluacion> InstanciasEvaluacion { get; set; }
public DbSet<PropuestaProyecto> PropuestasProyectos { get; set; }
public DbSet<Reunion> Reuniones { get; set; }
public DbSet<Rol> ListaRoles { get; set; }
public DbSet<Tecnologia> Tecnologias { get; set; }
public DbSet<TipoAplicacion> TiposAplicaciones { get; set; }
public DbSet<TipoCliente> TiposClientes { get; set; }
public DbSet<TipoProyecto> TiposProyectos { get; set; }
public DbSet<Usuario> Usuarios { get; set; }
public DbSet<InformeTarea> InformesTareas { get; set; }
public DbSet<Documento> Documentos { get; set; }
public DbSet<InformeCorreccion> InformesCorreccion { get; set; }
}
如图所示,“Estadistica”类没有“ID”道具,但这是因为我不想在数据库中保留它。 Id甚至不在“GestionProyectodbContext”类中,所以它应该不是问题。但是当试图创建一个控制器类“Tecnologia”时,出现了一个错误,即“Estadistica”没有键。我不知道为什么会出现这个错误,如果你知道为什么会这样,我会帮助你。 PD:“Tecnologia”课程甚至没有提到“Estadistica”课程。 PD2:我知道如何解决这个错误,但这不是我应该这样做的方式,因为我不想将“ID”属性添加到我不想在数据库中持久化的类中。 / p>
答案 0 :(得分:0)
EF仅在知道表的主键时才有效,默认情况下,它会识别名为Id
的主键,但如果您的表中没有Id
列名称然后使用[Key]
属性装饰其主键。
public class Estadistica
{
[Key]
public int Cantidad { get; set; }
public int Porcentaje { get; set; }
}
希望它有所帮助。
答案 1 :(得分:0)
您必须有一个引用py -3.4 setup_py2exe.py py2exe
的映射实体将NotMapped属性应用于它。
你也可以使用流畅的api忽略它:
Estadistica