【问题标题】:Generate identity for an Oracle database through Entity Framework using an exisiting stored procedure使用现有存储过程通过实体框架为 Oracle 数据库生成标识
【发布时间】:2016-10-10 00:02:31
【问题描述】:

如何通过Entity Framework自动为Oracle数据库生成身份?

我有一个函数可以调用并生成不在上下文中的列如何通过实体框架显式调用存储过程?我正在使用存储库模式。

用于插入记录的随机数生成器(我通过 UDF 获取主键并将其传递给要插入的实体)。

【问题讨论】:

    标签: oracle entity-framework-4 oracle11g repository-pattern identity-column


    【解决方案1】:

    1) 在 Oracle 中创建序列

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

    2)创建属性

       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)获取序列

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-19
      • 2011-10-11
      • 1970-01-01
      • 2015-06-05
      • 2023-04-08
      • 2017-10-29
      • 1970-01-01
      相关资源
      最近更新 更多