DevExpress の XPO のサンプル作成手順です。
Visual Studioのソリューション作成を行うために
新しいプロジェクトから「DevExpress v13.2 Template Gallery」を選択します。
「DevExpress Template Gallery」から「ASP.NET WebForms」の
「Empty Web Application」を選択します。
「Project Name」:プロジェクト名は適当な名前でOKです。
ここで、ソリューション作成が完了しました。
次にDBアクセスするために「ORMDataModel」の作成を行います。
ソリューションを右クリックでコンテキストメニューを表示して
「追加」→「新しい項目」を選択します。
左のツリーから「DevExpress」を選択して、
「DevExpress ORM Data Model Wizard」を選択します。
「Map to an existing database」を選択します。
・「Map to an existing database」:既存のDBから作成
・「Create a new database」:新規DBを作成
・「Do not connect to a database」:DB接続なし
使用するDBを選択してDBアクセス情報を入力します。
※今回はOracleを選択します。
【使用可能DB一覧】
・Access2007
・Access97
・Advantage
・Ase
・DB2
・Firebird
・InMemorySetFull
・MSSqlServer
・MSSqlServerCE
・MySql
・Oracle
・Pervasive
・Postgres
・SQLite
・VistaDB
・xmlDataSet
上記16種類から選択可能です。
使用するテーブルとカラムを選択します。
※今回は2テーブルの全カラムを使用しますので全チェック「ON」のデフォルト設定
クラスとプロパティーの設定を行います。
御免なさいここ理解していないので利用方法が分かっていません。
※毎回デフォルト設定
DBの選択設定を完了します。
DBの選択設定が完了しました。
【ER図 (Entity Relationship Diagram)】
※重要:2テーブルがリレーションで繋がっています。
この理由は明日説明します。
【作成したORMDataModel】
ここで一度ビルドを行って下さい。
すると、使用するテーブルのクラスが自動で生成されます。
※重要:事前にビルドしておかないと画面作成時の選択で候補に出てきません。
【自動生成クラス】
・ConnectionHelper.vb
→ DBアクセスする為の情報が記載されている
・TABLECHIHO.vb
→ 今回指示した使用テーブルのクラス
・TABLEKEN.vb
→ 今回指示した使用テーブルのクラス
対象テーブルですが2テーブルです。
・地方テーブル(TABLECHIHO)
・県テーブル(TABLEKEN)
<地方テーブル(TABLECHIHO)>
<県テーブル(TABLEKEN)>
次に画面の作成を行います。
ソリューションを右クリックでコンテキストメニューを表示して
「追加」→「新しい項目」を選択します。
左のツリーから「Web」を選択して、
「Web フォーム」を選択します。
空フォームが作成されました。
左のツールボックスから「DX.13.2:ORM Components」の
「XpoDataSource」を画面にドラッグします。
「XpoDataSource」を選択して右側のプロパティの
「TypeName」を「Sample_03.SAMPLE.TABLEKEN」に変更します。
※重要:事前にビルドしておかないと画面作成時の選択で候補に出てきません。
左のツールボックスから「DX.13.2:Data & Analytics」の
「ASPxGridView」を画面にドラッグします。
「ASPxGridView」を選択して右側のプロパティの
「DataSourceID」を「XpoDataSource1」に変更します。
この状態でビルドを行い実行しても画面にデータは表示されません。
理由は「XpoDataSource」はセッション管理方式なので、セッションを設定する必要があります。
<セッション設定 2か所必要>
「Global.asax.vb」のソースを開きます。
「Application_Start」メソッドで「DataLayer」の接続と「Session」の初期化を行います。
【編集前(VB)】
1 2 3 |
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) AddHandler DevExpress.Web.ASPxClasses.ASPxWebControl.CallbackError, AddressOf Application_Error End Sub |
【編集後(VB)】
1 2 3 4 5 |
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) AddHandler DevExpress.Web.ASPxClasses.ASPxWebControl.CallbackError, AddressOf Application_Error DevExpress.Xpo.XpoDefault.DataLayer = SAMPLE.ConnectionHelper.GetDataLayer(DevExpress.Xpo.DB.AutoCreateOption.SchemaAlreadyExists) DevExpress.Xpo.XpoDefault.Session = Nothing End Sub |
「WebForm1.aspx.vb」のソースを開きます。
「Init」メソッドで「Session」を設定します。
【追加(VB)】
1 2 3 |
Private Sub WebForm1_Init(sender As Object, e As System.EventArgs) Handles Me.Init XpoDataSource1.Session = New DevExpress.Xpo.Session End Sub |
再度リビルドを行って実行してみてください。
無事画面にデータが表示されました。