1

NORMA for Visual Studio 2010 を使用して、以下の ORM 図に示されている制約をモデル化しようとしています。 ここに画像の説明を入力

マーチャントは、そのマーチャントがその通貨をサポートするプロセッサを使用する場合にのみ、その通貨で取引します。

このリンクによると、私がモデル化しようとしているのは結合サブセット制約です。上記のリンクの例を次に示します。

ここに画像の説明を入力

その人がそのプロジェクトにまたがる部門で働いている場合にのみ、人として読むことができます。

それは私がモデル化しようとしているものと同じようです。

サブセット制約を追加し、あるロールから別のロールをクリックする場合、いくつかの組み合わせを試しましたが、常に次のようなエラーが発生します。

  • モデル 'ORMModel1' の制約 'SubsetConstraint1' には、列 '1' に互換性のないタイプのロール プレーヤーがあります。
  • モデル 'ORMModel1' の制約 'SubsetConstraint1' には、列 '2' に互換性のないタイプのロール プレーヤーがあります。

この制約をモデル化するにはどうすればよいですか?

4

1 に答える 1

1

あなたは正しい方向に向かっています。スーパーセット ロール ペアとサブセット ロール ペアを定義する必要があります。各ペアには 1 つの Merchant ロールと 1 つの通貨ロールがあり、ペア内のこれらのロールの順序は一致する必要があります。制約をクリックすると、一致することを確認できます。役割は、役割の順序を示す 1,1 1,2 2,1 2,2 で青色で強調表示されます。

スーパーセットの Merchant ロールは、「Merchant uses Processor」における Merchant の役割です。スーパーセット Currency ロールは、「Processor supports Currency」における Currency のロールです。

マーチャントと通貨の役割のサブセットは、「通貨での商人の取引」の 2 つの役割です。

同様の例は、次の倉庫保管の例の「DirectOrderMatch」に対するサブセット制約です: ActiveFacts Example Models。PurchaseOrderItem と SalesOrderItem を指す 2 つの矢印の頭に注意してください。CQL では、この制約は次のように表現されます (詳細な形式で、そのサイトでは簡潔な形式を示しています)。

some Purchase Order Item matches some Sales Order Item
    only if that Purchase Order Item is for some Product that is in that Sales Order Item;

したがって、比較のために、CQL で記述された例は次のようになります。

some Merchant transacts in some Currency
    only if that Merchant uses some Processor that supports that Currency;
于 2014-03-20T05:51:15.100 に答える