Entity Framework を使用して Oracle データベースのデータにアクセスする最初のアプリケーションを作成しています。データベースは、16 の異なる関連テーブルで構成されています。これまでのところ、プロトタイプ データベースを作成し、Oracle SQL Developer を使用していくつかのサンプル データをロードしました。アプリケーションは、選択したテーブルと関連テーブルからデータを正常に読み取っています。
ここで、アプリケーションからデータの追加を開始します。その方法については、何度か話し合いました。私が見た例では、このプロセスは簡単に見えますが、主キーの生成に関して質問があります。
テーブルのほとんど (すべてではないにしても) では、プライマリ キーは、リレーショナル キーとしての i の一意の使用以外に意味のない数値になります。これは、多くのレコードには、一意であることが保証されている特定のフィールドがないためです。出てくる問題は、そのキーがどのように生成されるかです。
私が以前に使用したデータベースには、データベースによってキーが自動的に作成されるように使用できる自動インクリメント フィールド タイプの概念がありました。DBA から、Oracle には自動インクリメント フィールド タイプがないことを知らされました。彼は、オラクルはシーケンスを使用してキー生成をサポートできるが、それはストアド プロシージャで行う必要があると私に言いました。一方で、ストアド プロシージャの使用については大きな反発を受けています。一般的な印象としては、Entity Framework に関する情報のいずれも、これが必要であることを示しておらず、Entity Framework はストアド プロシージャの必要性を排除すべきであるということです。
Entity Frameworkを使用してOracleテーブルにレコードを追加するときに、主キーに関して何をするか(または何が起こるか)を誰かが明確にすることはできますか?