Retrieving fluent configuration programatically without instantiating DbContext

那年仲夏 提交于 2019-12-02 00:50:35

Well, you need to load the context because it needs to call OnModelBuilding(DbModelBuilder) at least once to do it's business; otherwise there is no model to interrogate.

If you want, you can store off the information as XML using EdmxWriter;

    public static string ToEdmx(this System.Data.Entity.DbContext context)
    {
        var sb = new StringBuilder();

        using (var textWriter = new StringWriter(sb))
        using (var xmlWriter = System.Xml.XmlWriter.Create(textWriter, new System.Xml.XmlWriterSettings { Indent = true, IndentChars = "    " }))
        {
            System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(context, xmlWriter);
            textWriter.Flush();
        }

        return sb.ToString();
    }

This will give you an XML document with the data model. You can probably save that to disk in one process, and interrogate that file in your TT file.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!