如何“阅读”?EF6 T4模板中的entitytypconfiguration

本文关键字:entitytypconfiguration T4 EF6 阅读 如何 | 更新日期: 2023-09-27 17:54:38

我试图编写T4模板来为我的模型类生成自定义视图,模型类位于另一个组装中,映射是基于EF6流畅的API。

目前,我正在使用反射来获取属性的名称和类型,我的问题是如何读取ModelConfiguration?,例如获取主键和相关模型的外键。等。

如何“阅读”?EF6 T4模板中的entitytypconfiguration

示例访问模型。说明DataSpace有其他Enum值

public void EFTools2Test()
    {
        var context = new MyContext("MYConnie");
        ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext;
        MetadataWorkspace workspace = objContext.MetadataWorkspace;
        IEnumerable<EntityType> managedTypes = workspace.GetItems<EntityType>(DataSpace.OSpace);
        var result = new List<Type>();
        foreach (var managedType in managedTypes) {
            Console.WriteLine(managedType.FullName);
            foreach ( var p in managedType.Properties) {
                Console.WriteLine(p.Name );
            }
        }

    }

    public void EFToolsTest() {
    //  http://msdn.microsoft.com/en-us/library/system.data.metadata.edm.dataspace(v=vs.110).aspx
        var context = new MyContext("MYConnie");
        ObjectContext objContext = ((IObjectContextAdapter)context).ObjectContext;
        MetadataWorkspace workspace = objContext.MetadataWorkspace;
        var xyz = workspace.GetItems<EntityType>(DataSpace.SSpace);
        foreach (var ET in xyz) {
            foreach (var sp in ET.Properties) {
                Debug.WriteLine(sp.Name + ":" + sp.MaxLength);// just as an example
                }
            }
        }
相关文章:
  • 没有找到相关文章