【翻訳】Orchard Webショップモジュールを最初から作成する(4)-ProductPartの作成
4292 ワード
原文アドレス:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-4定義のProductPartこれは、新しいOrchardモジュールを最初から作成するチュートリアルの4編目です.このチュートリアルの概要については、紹介するを参照してください.Orchardのコンテンツ項目(Content Items)はContent Partsで構成されています.私たちのオンラインショップモジュールを使用して、管理者がProductPartを任意のコンテンツタイプ(ContentType)に添付することで、商品(Product)を構成することを望んでいます.たとえば、ユーザーは「本」のコンテンツタイプを定義し、ProductPartを追加すると、「本」を「商品」に変換し、カートや注文書、明細に追加することができます.データベースにデータを格納するためのProductPartを作成します.ProductRecordを作成し、Orchardから継承する必要があります.ContentManagement.Records.ContentPartRecord.Orchardは、仕様として接尾辞「Record」を使用し、NHibernate ORM永続化を使用します.オーチャードを追加する.Frameworkプロジェクトの参照は、Orchard.ContentManagement.Records.ContentPartRecordで継承します. 新しいフォルダの名前を「Models」 に追加「Models」フォルダで、ProductRecordという新しいクラスを作成します. 「Models」フォルダで、新しいクラス名をProductPartとして作成し、ContentPartから継承します. ProductPartには、Price(価格)とSKUのプロパティがあります.
ソリューションは次のようになります.
ProductRecord.cs:
OrchardがProductRecordオブジェクトのインスタンスをデータベースにマッピング、ロード、保存できるようにする前に、データベース・テーブル構造がどのようになっているかを示す必要があります.私たちはMigrationというクラスを作成し、Orchardから継承します.Data.Migration.DataMigrationImplは、データベース構造(schema)のクラスを定義するためにいくつかのメソッドを呼び出します.Migrationでは、Orchardが作成するテーブルと作成するContenteTypeとContentPartsを教えています.モジュールのディレクトリの下にMigrationsという名前を作成します.csの新しいクラスは、次のコードに入力されます.
「Create」は、Orchardがモジュールを有効にすると呼び出される仕様を使用します.ContentPartRecordメソッドは、ID列を作成し、プライマリ・キーに設定するための簡単な方法です.
私たちの例では、モジュールを有効にしました.しかし、Orchardは頭がいいので、既存のDataMigrationが使用可能であることを検出し、現在保存されているMigrationバージョン番号をチェックします.モジュールが有効になっている間、Migrationが実行できないので、Orchard_Framework_DataMigrationRecordテーブルにも対応するバージョン番号が見つかりません.
Orchard Adminページをリフレッシュすると、Orchardはいくつかの機能をアップグレードする必要があるという通知を表示します.Orchardをクリックします.Webshopリンクは、直接モジュールページに移動し、Orchardを表示します.Webshop機能:Upgradeをクリックすると、OrchardはMigrationsクラスのCreateメソッドを呼び出し、Orchard_という名前のメソッドを作成します.Webshop_ProductRecordテーブル:
ソリューションは次のようになります.
ProductRecord.cs:
OrchardがProductRecordオブジェクトのインスタンスをデータベースにマッピング、ロード、保存できるようにする前に、データベース・テーブル構造がどのようになっているかを示す必要があります.私たちはMigrationというクラスを作成し、Orchardから継承します.Data.Migration.DataMigrationImplは、データベース構造(schema)のクラスを定義するためにいくつかのメソッドを呼び出します.Migrationでは、Orchardが作成するテーブルと作成するContenteTypeとContentPartsを教えています.モジュールのディレクトリの下にMigrationsという名前を作成します.csの新しいクラスは、次のコードに入力されます.
using Orchard.Data.Migration;
namespace Orchard.Webshop {
public class Migrations : DataMigrationImpl {
public int Create() {
SchemaBuilder.CreateTable("ProductRecord", table => table
.ContentPartRecord()
.Column<decimal>("Price")
.Column<string>("Sku", column => column.WithLength(50))
);
return 1;
}
}
}
「Create」は、Orchardがモジュールを有効にすると呼び出される仕様を使用します.ContentPartRecordメソッドは、ID列を作成し、プライマリ・キーに設定するための簡単な方法です.
/// <summary>
/// Defines a primary column as for content parts
/// </summary>
public CreateTableCommand ContentPartRecord() {
Column<int>("Id", column => column.PrimaryKey().NotNull());
return this;
}
私たちの例では、モジュールを有効にしました.しかし、Orchardは頭がいいので、既存のDataMigrationが使用可能であることを検出し、現在保存されているMigrationバージョン番号をチェックします.モジュールが有効になっている間、Migrationが実行できないので、Orchard_Framework_DataMigrationRecordテーブルにも対応するバージョン番号が見つかりません.
Orchard Adminページをリフレッシュすると、Orchardはいくつかの機能をアップグレードする必要があるという通知を表示します.Orchardをクリックします.Webshopリンクは、直接モジュールページに移動し、Orchardを表示します.Webshop機能:Upgradeをクリックすると、OrchardはMigrationsクラスのCreateメソッドを呼び出し、Orchard_という名前のメソッドを作成します.Webshop_ProductRecordテーブル: