2011-09-28 84 views
1
对象角色模型

我想下面使用诺马为Visual Studio 2010中的ORM图中描绘的约束模型: enter image description here三个实体约束在诺马

商家进行交易的货币,当且仅当商户使用支持该货币的处理器。

根据this链接,我试图建模是一个连接子集约束。这里是从上面的链接的例子:

enter image description here

行文一个人只能在一个项目上工作,如果那个人一处得知Spansors该项目工程。

这似乎与我试图建模的完全相同。

我试过几种组合如果将一个子集约束,点击一个角色,然后对方,但总是与错误,如结束:

  • 约束“SubsetConstraint1”模型“ORMModel1”已经在角色球员列'1'与不兼容的类型。
  • 模型'ORMModel1'中的约束'SubsetConstraint1'在列'2'中具有不兼容类型的角色播放器。

我该如何去建模这个约束?

+0

我想这个问题是相同的:http://stackoverflow.com/questions/4300209/orm-specifying-a-value-equality-constraint-against-two-referenced-entities –

回答

0

您正朝着正确的方向前进。您需要定义超集角色对和子集角色对。每对有一个商人角色和一个货币角色,并且这些角色在这些对中的顺序必须匹配。你可以检查匹配我点击约束;然后用1,1,1,2,2,1,2,2以蓝色突出显示角色序列。

超集商人角色是商人在“商人使用处理器”中扮演的角色。 超级货币角色是货币在“处理器支持货币”中的角色。

商家和货币角色的子集是“货币商家交易”中的两个角色。

一个类似的例子是仓库示例中的“DirectOrderMatch”子集约束:ActiveFacts Example Models。请注意指向PurchaseOrderItem和SalesOrderItem的两个箭头。在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;