6

Come generare automaticamente l'identità per un database Oracle tramite Entity Framework?Genera identità per un database Oracle tramite Entity Framework utilizzando una stored procedure esistente

Ho una funzione che potrei chiamare e generare la colonna che non è nel contesto come faccio a chiamare esplicitamente la stored procedure attraverso Entity Framework? Sto usando un modello di repository.

Generatore di numeri casuali per inserire un record (dove ottengo la chiave primaria tramite un UDF e lo passo all'entità da inserire).

risposta

0

1) Creare sequenza in Oracle

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

2) Creazione di proprietà

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) Ottenere Sequenza

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