0

私は自分でプログラムした CMS を使ったことがありますが、Umbraco は初めてです。私は.net Framework 4 を使用してUmbraco 4.7に取り組んでおり、このようなコンテンツ構造を作成したいと考えています。

男性モデル
|--------------モデル (複数可)
                 |----------- モデル ID (問題) 
                 | ----------- 名前
                 |-------生年月日
                 | --------------など...

モデルごとにノードを作成する必要があり、各モデルに一意のモデル ID を割り当てたいのですが、自動インクリメント フィールドに使用できるデータ型が見つかりません (SQL でカスタム .net コードをプログラミングするときのように)。@pageId を使用できることはわかっていますが、モデル ID を 100 から開始し、モデルごとに 1 つずつ増分するようにします。

助けが必要...

4

2 に答える 2

1

1 つのオプションは、作成後に自動インクリメント値を「autoID」フィールドに追加し、再度保存/公開できるカスタム ライブラリで Document.AfterPublish イベントを処理できることです。最大の ID を見つけるために毎回すべてのモデルを照会する必要がないように、現在のインクリメント ID 値のカウンターを保持する必要がある場合があります (上記の「MaleModels」ノードなど)。

詳細については、Umbraco でのイベントに関するブログ記事をご覧ください: http://www.bo-mortensen.dk/2011/10/umbraco-more-event-goodness/

于 2012-08-02T20:05:34.943 に答える
0

データベースを持つ「カスタム ユーザー コントロール」を作成し、最初の列を自動インクリメンタルとして作成し、2 番目の列を NodeId として作成しないのはなぜですか。それが完了したら、Page_Load()イベント時にそれをデータベースに追加して、NodeId が存在するかどうかを確認してください。レコードを挿入しないでください。

Umbraco で DataType として作成し、プロパティとして使用すると、ユーザー コントロールはノードを作成するときに自動インクリメンタル番号を取得し、そのユーザー コントロールは NodeId でレコードを挿入し、自動インクリメンタルを生成してpage_load()into<asp:Label>に表示します。

ページが読み込まれるたびに熱くなるので、できることは、データベースに NodeId が存在するかどうかを毎回チェックする必要があることです。存在する場合は挿入しないでください。増分、

毎回データベースが加熱されることを心に留めておく必要がありますが、それを調べる必要があるパフォーマンスを考慮してください。

さらに質問がある場合は、お知らせください。

ありがとう

アンクル

于 2012-07-31T10:51:40.077 に答える