2

我有一个 T4 模板,它为我的模型中的每个表输出一些代码。

我需要它能够区分作为普通“1 * many”集合属性的类的属性,以及作为“1 * many”但隐藏折叠的多对多链接的属性。

例如,如果我有“Table1”、“Table2”、“Table3”、“Table4”和“Table5”。“Table1”对“Table2”有 1 * many。使用“Table4”作为链接表,“Table3”与“Table5”具有多对多。

在实体框架中,不会显示“Table4”,您可以按如下方式导航链接:

“表 3”->“表 5 集合属性”->“表 5”

“表 5”->“表 3 集合属性”->“表 3”

所以我想知道的是,如果我使用的是 T4 模板,有没有办法找出属性“Table5CollectionProperty”是否实际上是隐藏多对多链接的属性?

编辑

或者至少,有没有办法使用 c# 代码中的上下文来找出这个问题?

4

1 回答 1

2

好的,在对 MSDN 进行了一些挖掘之后,我相信我已经找到了解决这个问题的方法。在 T4 模板中,我可以按如下方式访问属性:

if (navProperty.FromEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many &&
    navProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many)
{
    // deal with many to many link collections here...
}

把它贴在这里,以防其他人有需要。

于 2013-08-01T13:34:49.433 回答