2

我在企业架构师中有一个带有 2 个类 A 和 B 的 UML 类图(示例简化)。类图显示了 A 和 B 之间的关联。A 和 B 的关联分别为 0..1 到 0..m。这意味着 A 可以有 0 ... m B 个实例,而 B 属于 0 或 1 个 A 实例。我与企业架构师一起生成了这个 C# 代码(简化):

class A
{
   public B _b;
}

class B
{

}

但是,不应该是:

class A
{
   public IList<B> _bs;
}

class B
{

}

在代码生成过程中我需要考虑什么(我还选择了这两个类,但没有成功生成代码)。

4

2 回答 2

2

转到工具 - 选项 - 源代码工程 - C# 并单击集合类按钮以指定用于代码生成的集合类(忽略 1..* 标签)。

您在连接器的“属性”中的“目标角色”选项卡上指定多重性属性(有序等)(我很确定 EA 会忽略源角色上的 0..1 多重性;它实际上并不能做很多事情)。

最后,确保所有类和包都指定为 C#。最简单的方法是在项目浏览器中右键单击包并选择代码工程 - 重置此包的选项,然后在对话框中指定“语言为 <All>”、“转换为 C#”和处理子包。

于 2012-11-01T05:46:14.000 回答
1

您需要定义希望代码生成使用哪个集合类。它是,从内存中,工具 > 选项 > 代码工程 > C#

于 2012-10-26T05:04:17.880 回答