我有一个T4模板,可以为我的模型中的每个表输出一些代码。
我需要它能够区分一个普通“1 *多”集合属性的类的属性,以及一个“1 *多”但隐藏折叠多对多链接的属性。
例如,如果我有“Table1”,“Table2”,“Table3”,“Table4”和“Table5”。 “Table1”具有1 *多个“Table2”。使用“Table4”作为链接表,“Table3”对“Table5”有多对多。
在实体框架中,“Table4”不会显示,您可以按如下方式导航链接:
“表3” - > “Table5CollectionProperty” - > “表5”
“表5” - > “Table3CollectionProperty” - > “表3”
所以我想知道的是,如果我使用T4模板,是否有办法找出属性“Table5CollectionProperty”实际上是隐藏多对多链接的属性?
或者至少,有没有办法在c#代码中使用上下文找到它?
答案 0 :(得分:2)
好的,在深入研究MSDN后,我相信我找到了一种方法来解决这个问题。在T4模板中,我可以按如下方式访问属性:
if (navProperty.FromEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many &&
navProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many)
{
// deal with many to many link collections here...
}
在此发布,以防其他人需要此功能。