How can I run EntityFramework Reverse POCO First Generator (T4) program code?

I want to use the "EntityFramework Reverse POCO Code First Generator", but not programmatically from VS. EntityFramework Reverse POCO Github Code

In fact, I want to run T4 for this purpose from C # code. For this, I downloaded a simple-t4 engine A simple T4 engine

I wrote code like this:

        Engine engine = new Engine();
        TemplatingHost host = new TemplatingHost(System.Text.Encoding.UTF32);
        host.IncludeFileSearchPaths.Add(@"D:\IncludeFiles");

        string templateFileName = "some template";
        // NOTE: Doesn't actually seem to care about the name of the template file?  True, but does use the path to search for stuff.
        host.TemplateFile = templateFileName;
        string input = File.ReadAllText(@"D:\IncludeFiles\T4Files\Database.tt");
        string output = engine.ProcessTemplate(input, host);
        File.WriteAllText(@"D:\IncludeFiles\T4Files\Output.txt", output);

        StringBuilder sb = new StringBuilder();
        foreach (CompilerError error in host.Errors)
        {
           sb.AppendLine(error.ToString());
        }

        File.WriteAllText(@"D:\IncludeFiles\T4Files\ErrorLog.txt", sb.ToString());

But I got some errors (Output.txt is empty)

ErrorLog.txt:

   error : Running transformation: System.InvalidCastException: Unable to cast transparent proxy to type 'System.IServiceProvider'.
   at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetDTE()
   at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetCurrentProject()
   at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetConfigPaths()
   at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetConnectionString(String& connectionStringName, String& providerName, String& configFilePath)
   at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.InitConnectionString()
   at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetDbProviderFactory()
   at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.TransformText()

Can someone help me solve this problem? or introduce a better way to run Database.tt at run time to execute in C # programmatically.

Database.tt

  • EF.Reverse.POCO.Core.ttinclude
  • EF.Reverse.POCO.ttinclude
  • EF.Utility.CS.ttinclude
  • EF6.Utility.CS.ttinclude
  • GenerateTSQL.Utility.ttinclude
+4
2

POCO Framework Entity Framework.

, Visual Studio, . EnvDTE / Visual Studio. .

, . , . , tt, .

, : , Visual Studio . .

+5

TextTransform T4 Visual Studio. :

\Program Files\Common Files\Microsoft Shared\TextTemplating\

, , , , .

-1

All Articles