6

Làm thế nào để tự động tạo danh tính cho cơ sở dữ liệu Oracle thông qua khung thực thể?Tạo danh tính cho cơ sở dữ liệu Oracle thông qua Khuôn khổ thực thể bằng cách sử dụng thủ tục lưu sẵn

Tôi có một chức năng mà tôi có thể gọi và tạo cột không nằm trong ngữ cảnh làm cách nào để gọi thủ tục được lưu trữ thông qua Khung thực thể một cách rõ ràng? Tôi đang sử dụng một mẫu kho lưu trữ.

Trình tạo số ngẫu nhiên để chèn bản ghi (nơi tôi lấy khóa chính thông qua UDF và chuyển thông tin này tới thực thể để chèn).

Trả lời

0

1) Tạo chuỗi trong Oracle

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

2) Tạo thuộc tính

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) Bắt Chuỗi

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