[英]Entity Framework 6 T4 Get EntitySet Name
我正在使用EF 6.1.3中的T4模板。 具体来说,我在生成时会创建一些其他类。 列出一些基本的CRUD方法。 我需要访问EntitySet名称。 T4遍历了...
var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile);
这些对象的类型为EntityType
。 我需要找到关联的EntitySet.Name
属性。
我很沮丧,任何帮助表示赞赏。
在研究了其他一些T4模板后,我找到了解决方案。 似乎在以前的版本中,EF模板将使用MetadataLoader
类,现在文件本身中有一个自定义的EdmMetadataLoader类。 这个新类没有公开对EntitySet
本身的任何访问。
通过获取实体集合后...
var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile);
您可以访问该容器...
var container = itemCollection.OfType<EntityContainer>().FirstOrDefault();
然后在实体的迭代中...
foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>(itemCollection))
{
fileManager.StartNewFile(entity.Name + ".cs");
var entitySet = container.BaseEntitySets.OfType<EntitySet>().FirstOrDefault(set => set.ElementType == entity);
...
}
不能100%确定这是否是正确的方法,但是可以完成工作,并且我在以下属性中获得EntitySet
名称...
entitySet.Name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.