Oracle实体框架自动增量?

时间:2011-03-31 06:55:06

标签: c# oracle entity-framework

我正在考虑在我的应用程序中使用ODP.NET Entity框架,我想知道如何处理自动增量。在没有EF的情况下使用ODP.NET时,我在插入中使用了序列和sequence.next。 但是我应该如何处理EF?

谢谢!

3 个答案:

答案 0 :(得分:2)

我使用过序列和触发器 - 这是唯一可行的解​​决方案。

答案 1 :(得分:0)

通常,您在表的BEFORE INSERT触发器中检索序列的NEXT_VAL(请参阅sample)。

在EF中,将PK列的StoreGeneratedPattern设置为Identity(MSDN)。

答案 2 :(得分:0)

在EntityFramework 6中,您可以将模型的DatabaseGeneratedOption配置为Identity并设置键列:

if a<X<b elif b<X<C else ...

之后,更新数据库:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        //Configure default schema
        modelBuilder.HasDefaultSchema("Admin");

        //Map pk in table
        modelBuilder.Entity<Student>().HasKey(t => t.ID_CERT);
        modelBuilder.Entity<Student>().Property(t => t.ID_CERT)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    }

这将为您自动创建序列并触发。

如果您需要一些自定义触发器,请参见here一些示例,并使用触发器创建一个空迁移:

update-database