Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generate identity for an Oracle database through Entity Framework using an exisiting stored procedure

How to automatically generate identity for an Oracle database through Entity Framework?

I have a function that I could call and generate the column which is not in the context how do I explicitly call the stored procedure through Entity Framework? I am using a repository pattern.

Random Number generator to insert a record (where I get the primary key through a UDF and pass this to the entity to insert).

like image 656
user1056085 Avatar asked Nov 22 '11 20:11

user1056085


1 Answers

1) Create sequence in Oracle

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

2)Create property

   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)Getting Sequence

   public int InsertTable1()
    {
      using (Entities ctx = new Entities())
        {
            ctx.tabel1.Add(new tabel1()
            {
                SEQ = CommonUtilities.DummyTestSeq,
                Date= DateTime.Now
            });
            return ctx.SaveChanges();
        }
     }
like image 187
Lawren Alex Avatar answered Oct 14 '22 00:10

Lawren Alex