6

¿Cómo generar automáticamente identidad para una base de datos Oracle a través de Entity Framework?Generar identidad para una base de datos Oracle a través de Entity Framework usando un procedimiento almacenado existente

Tengo una función que podría llamar y generar la columna que no está en el contexto, ¿cómo puedo llamar explícitamente el procedimiento almacenado a través de Entity Framework? Estoy usando un patrón de repositorio.

generador de números aleatorios para insertar un registro (donde obtengo la clave principal a través de una UDF y la paso a la entidad para insertarla).

Respuesta

0

1) Crear secuencia en Oracle

CREATE SEQUENCE dummy_test_seq 
    MINVALUE 1 
    MAXVALUE 999999999999999999999999999 
    START WITH 1 
    INCREMENT BY 1; 

2) Crear propiedad

sealed public class CommonUtilities 
    { 
     #region Sequences 
     public static int DummyTestSeq 
     { 
     get 
      {    
      using (Entities ctx = new Entities()) 
      { 
       return Convert.ToInt32(ctx.Database.SqlQuery<decimal>("SELECT dummy_test_seq.NEXTVAL FROM DUAL").ToList().Single()); 
       } 
      } 
     } 
    #endregion 
} 

3) Obtención de Secuencia

public int InsertTable1() 
    { 
     using (Entities ctx = new Entities()) 
     { 
      ctx.tabel1.Add(new tabel1() 
      { 
       SEQ = CommonUtilities.DummyTestSeq, 
       Date= DateTime.Now 
      }); 
      return ctx.SaveChanges(); 
     } 
    } 
Cuestiones relacionadas