エンティティの定義は、コンテキストを定義すると自動生成されますが、次のようなエンティティ定義画面において、独自にその構造を定義することも可能です。業務アプリの設計では、コンテキストの構造を先に定義していく方法と、最初にエンティティの構造を定義し、それに対応するコンテキストを定義していく方法があります。
コンテキサーのリボン「定義」タブから「エンティティ」を選択します。
エンティティ定義画面には、次の操作欄があります。それぞれの欄について説明します。
番号 | 操作欄 | 説明 |
---|---|---|
1 | [新規]ボタン | 新しいエンティティを作成します。 |
2 | [複製]ボタン | 選択しているエンティティを複製した新しいエンティティを作成します。 |
3 | [削除]ボタン | 選択しているエンティティを削除します。 |
4 | インポート | 他の業務アプリからエンティティをインポートし、新たなエンティティを自動生成します。 |
5 | インデックス | 複数の項目からなるインデックスを指定します。 |
6 | 連結キー | エンティティ間の連結キーを定義します。 |
7 | コンテキスト | このエンティティがもとになるコンテキストの一覧を表示します。 |
8 | 主キー | エンティティの主キーとなる項目を指定します。エンティティには、その属性のいずれかから、必ず1つの主キーを選択し設定しなければなりません。もし、主キーを指定しない場合には、システム側で自動で主キーを追加します。 エンティティが定義されるとKeyという名称の主キーが自動的に定義されています。主キーを変更した場合には、これまでのKeyは不要な場合には自動で削除されます。 |
9 | カウンタ | 新しい行の主キーに採番されるカウンタ値を指定します。主キーの値が重複しないように常に増加する変数です。その時点での値が入力されます。この値をもとに主キーが決定されます。 |
10 | フォーマット | 主キーを採番する際に、カウンタを文字列に変換する際の書式を指定します。主キーが文字列である場合に、ここで指定するフォーマットが、主キーの自動採番の方法を決定します。シングルクォートで囲まれた文字は固定で、0でしめされた部分にカウンタの数字が毎回カウントアップされます。 フォーマットには、.NET Frameworkで指定された拡張書式規則が適用されます。例えば、0をフォーマットの文字列に設定すると、その部分にはカウンタで桁数が足りない場合に0でその桁を埋めします。例えば「'A'000」というフォーマット文字列に対しては、カウンタが1からとすると「A001」,「A002」,「A003」,・・・のように主キーの値が決定されます。 |
11 | カウンタは毎回初期化する | カウンタは毎回初期化にチェックがあると、業務アプリを起動するたびにカウンタが1に戻されます。 |
12 | エンティティ一覧 | 一覧には、現在定義されているすべてのエンティティが表示されます。この中のエンティティを選択すると、その定義内容が表示され、定義内容を修正できます。 |
13 | 属性名 | エンティティに含まれる属性の名称を指定します。これはユニークでなければなりません。 |
14 | データ型 | 属性のデータ型を指定します。 |
15 | 必須 | この属性が未入力を許すかどうかを指定します。 |
16 | [適用]ボタン | 選択しているエンティティの定義を登録します。 |
17 | [閉じる]ボタン | 変更を登録せずに、この定義画面を閉じます。 |
18 | [登録]ボタン | 選択しているエンティティの定義を登録して、この定義画面を閉じます。 |
コンテキサーでは、エンティティに対して、主キー以外に、インデックスを定義することで、高速化を実現しています。インデックスは、複数の属性の組合せで定義することも可能です。
インデックスを定義するには、エンティティ定義画面において、インデックスボタンをクリックします。次のようなインデックス定義画面において、1つ以上のキーを指定してください。なお、インデックスを必要以上に多く定義すると、インデックスの作成に時間が掛かり、逆に読み込みの時間が長くなる場合があります。必要最低限のインデックスを定義してください。
番号 | 操作欄 | 説明 |
---|---|---|
1 | インデックス一覧 | このエンティティに定義したインデックス一覧が番号で表示されます。インデックスは、通し番号で識別されます。[新規]を選択すると、新しいインデックス定義を定義できます。 |
2 | [削除]ボタン | 選択しているインデックス定義を削除します。 |
3 | ユニーク | このインデックスで指定された属性の値の組み合わせが、エンティティで唯一の要素となるようにするかどうか設定します。設定すると、コンテキストで行を追加・修正した時に、同じ値の項目が重複しないようにします。 |
4 | キー | インデックスを作成する属性を指定します。 |
5 | [登録]ボタン | 選択しているインデックス定義を登録します。 |
[コンテキスト]ボタンをクリックすると、対象エンティティに対応するコンテキストのみが列挙された定義画面が表示されます。定義画面の操作方法は「コンテキスト」定義画面をご覧ください。
番号 | 操作欄 | 説明 |
---|---|---|
1 | 対応コンテキスト一覧 | 対応コンテキスト一覧には、対象エンティティを基とするすべてのコンテキストがリストとして表示されます。 |
エンティティの定義において、CSVファイルにあらかじめエンティティ定義が存在する場合には、インポートによって自動生成できます。エンティティ定義をインポートするためには、エンティティ定義画面において、インポートボタンをクリックします。
インポートするファイル選択画面にて、業務アプリ(ctpファイル)を選択した場合には、次のようなエンティティ定義のインポート画面が表示されます。この画面で、インポートするエンティティにチェックを入れて[インポート]ボタンをクリックします。
番号 | 操作欄 | 説明 |
---|---|---|
1 | 業務アプリ一覧 | インポート元の業務アプリを選択します。[...]でctpファイルを選択できます。 |
2 | 検索ボックス | エンティティ名を絞り込むための検索キーワードを入力します。 |
3 | エンティティ一覧 | 選択した業務アプリのctpファイルに含まれているエンティティが一覧として表示されます。 |
4 | すべて | 一覧にあるエンティティをすべてチェックします。 |
5 | 解除 | 現在チェックされているエンティティをすべて解除します。 |
6 | 同名定義は上書き | すでに名前が同じエンティティが定義されている場合は、そのエンティティに属性を上書きします。 |
7 | 接頭詞 | インポートしたエンティティの名前に付ける接頭詞 |
8 | [インポート]ボタン | その時点でチェックされているエンティティ定義をインポートします。 |
インポートすると、業務アプリにあるエンティティから次の定義が複製されます。
エンティティ定義として、CSVにはあらかじめ次のフォーマットで定義されている必要があります。エンティティ名と属性名とでユニークとなっていなければなりません。また同じエンティティは連続していなければなりません。
列 | 説明 |
---|---|
1列目 | エンティティ名 |
2列目 | 属性名 |
3列目 | データ型 |
属性名としては、日本語または英語で、次のキーワードが利用できます。
種別 | キーワード |
---|---|
英語 | string,int,integer,long,float,double, decimal,datetime,timespan,bool,boolean |
日本語 | 文字列,番号,整数,数値,十進数,日付時刻,時間幅,真偽値,リスト |
CSVからのインポートでは、主キーは設定されず、デフォルトとしてKeyという名称の属性が自動追加されて主キーとなっています。必要に応じて変更してください。
なお、エンティティをインポートした直後の状態では、エンティティを持つコンテキストが一つも存在しないことになります。この状態のまま保存すると、エンティティは保存されず削除されますので注意してください。