实体框架,Oracle和标识列

时间:2014-10-24 05:54:05

标签: c# oracle entity-framework

我正在使用Entitiy Framework和Oracle,当我需要自动生成的主键列时,我会使用序列。当我创建edmx文件时,EF设计器无法识别此模式,因此我需要手动将所有标识列的StoreGeneratedPattern =“Identity”插入到edmx文件中。每次我需要更新我的模型时,我都会重复这个。当模型变大并且更新频繁时,这变得非常耗时。

我想知道是否有一个更简单的方法,比如我第一次向模型中添加一个表我可以将行StoreGeneratedPattern =“Identity”添加到edmx,但是后续更新会自动添加该行。

1 个答案:

答案 0 :(得分:0)

在Oracle 12c中,您拥有标识列。

SQL> drop table identity_table purge
  2  /

Table dropped.

SQL>
SQL> CREATE TABLE identity_table (
  2    ID          NUMBER GENERATED ALWAYS AS IDENTITY,
  3    txt        VARCHAR2(30)
  4  )
  5  /

Table created.

SQL>
SQL> INSERT INTO identity_table(txt) VALUES('id number 1');

1 row created.

SQL> INSERT INTO identity_table(txt) VALUES('id number 1');

1 row created.

SQL> INSERT INTO identity_table(txt) VALUES('id number 1');

1 row created.

SQL>
SQL> SELECT * FROM identity_table;

        ID TXT
---------- ------------------------------
         1 id number 1
         2 id number 1
         3 id number 1

SQL>

Oracle实际上为您创建了一个序列,您需要做的就是创建一个标识列NUMBER GENERATED ALWAYS AS IDENTITY