Estoy tratando de trabajar con EF CodeFirst en Oracle con ODP.net. Esta es mi clase DbContext:¿Cómo se configura DbContext para que funcione con Oracle ODP.Net y EF CodeFirst?
public class MyCEContext : DbContext {
public DbSet<Person> Persons { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<Person>().ToTable("PERSONS","myce");
}
public MyCEContext() :
base(new OracleConnection(
"Data Source=cebd; User ID=myce; Password=****;"), true) {}
}
El problema es que cuando intento hacer algo como esto:
MyCEContext context = new MyCEContext();
Person p = context.Persons.Find(1);
consigo este error interno:
{"ORA-00942: table or view does not exist"}
Y existe la tabla.
¿Qué estoy haciendo mal?
Tengo tanto las clases como las propiedades con anotaciones de datos con mayúsculas Esquema/Nombre de columna, respectivamente, y todavía no funcionan. Sin embargo, usar DbSet.Find no funciona, DbSet.SingleOrDefault() hace –
¿Podría poner algún código de sus clases o mapeos? – fcaldera
parecía ser un error tipográfico en uno de los atributos de anotación de tabla, por lo que parece que DbSet.Find atraviesa todas las clases y asigna em a sus tablas mientras usa SingleOrDefault() solo asigna en tiempo de ejecución las tablas necesarias para esa consulta porque así es como noté el error tipográfico Estaba pensando que, dado que SingleOrDefault funcionaba, todos los nombres de las tablas estaban bien. En resumen, Find asigna tu conjunto completo de listas de objetos DbContext. –