我一直在阅读 Microsoft.AspNet.Scaffolding.Core.Metadata命名空间;但是,我是这个对象模型的新手,也许我忽略了一些东西。我正在创建 T4 文本模板,并希望为相关模型数据自动生成输出。类似于 ModelMetadata.RelatedModelMetadata.ModelMetadata.PropertyMetadata 即
foreach (PropertyMetadata property in ModelMetadata.Properties) {
if (property.IsAssociation) {
RelatedModelMetadata relatedModel = property.RelatedModel
foreach (PropertyMetadata relatedProperty in relatedModel.Properties) {
// Do Something
}
}
}
这当然不能作为 RelatedModelMetadata对象没有属性集合;事实上,所有 RelatedModelMetadata 属性都是字符串。
任何提示都是技巧,您可能会感激不尽。
谢谢!
最佳答案
在您的 View 生成模板中,您可以访问 Model.ModelMetadata.Navigations
属性。这与 RelatedModelMetadata“相似”...我在引号中重复“相似”...相似性可能更多的是意图,而不是功能。
@foreach (var property in Model.ModelMetadata.Navigations)
{
//I do what I want!
}
每个 property
都给你属性
- 关联属性名称:字符串
- 显示属性名称:字符串
- 实体集名称:字符串
- ForeignKeyPropertyNames:字符串数组
- PrimaryKeyNames :字符串数组
- 短类型名称:字符串
- 类型名称:字符串
关于c# - 有没有办法为 ModelMetadata.RelatedEntities 获取 ModelMetadata.Properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29978398/