我正在使用Entitiy Framework和Oracle,当我需要自动生成的主键列时,我会使用序列。当我创建edmx文件时,EF设计器无法识别此模式,因此我需要手动将所有标识列的StoreGeneratedPattern =“Identity”插入到edmx文件中。每次我需要更新我的模型时,我都会重复这个。当模型变大并且更新频繁时,这变得非常耗时。
我想知道是否有一个更简单的方法,比如我第一次向模型中添加一个表我可以将行StoreGeneratedPattern =“Identity”添加到edmx,但是后续更新会自动添加该行。
答案 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
。