我有一个 T4 模板,它为模型中的每个表输出一些代码。
我需要它能够区分属于普通“1 * 许多”集合属性的类属性和“1 * 许多”但隐藏折叠的多对多链接的类属性。
例如,如果我有“Table1”、“Table2”、“Table3”、“Table4”和“Table5”。 “Table1”与“Table2”有 1 * 许多。 “Table3”与“Table5”有多对多,使用“Table4”作为链接表。
在 Entity Framework 中,不会显示“Table4”,您将按如下方式导航链接:
"Table3" -> "Table5CollectionProperty" -> "Table5"
"Table5" -> "Table3CollectionProperty" -> "Table3"
所以我想知道的是,如果我使用T4模板,有没有办法找出属性“Table5CollectionProperty”实际上是否是隐藏多对多链接的属性?
编辑
或者至少,有没有办法使用 C# 代码中的上下文找到这一点?
最佳答案
好吧,在深入研究 MSDN 之后,我相信我已经找到了解决这个问题的方法。在 T4 模板中,我可以按如下方式访问属性:
if (navProperty.FromEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many &&
navProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many)
{
// deal with many to many link collections here...
}
将其发布在此处,以防其他人有需要。
关于c# - Entity Framework T4 模板,如何确定关系是否是正确的一对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17990590/