	<rss version="2.0">
		<channel>
			<title>LLBLGen Pro Support System Designer feed</title>
			<link>https://llblgen.com/tinyforum//Forum/8</link>
			<description>This is the RSS feed for the forum Designer on the LLBLGen Pro Support System forum system.</description>
			<ttl>30</ttl>
			<language>en-us</language>
				<item>
					<title>Change entitynames and fieldnames in llblgenproj-file from Dutch to English by Otis</title>
					<description>&lt;p&gt;There&#x27;s no translation service in the designer, but it does have a plugin system for you to utilize so you can access the entire object model. If you look at the Sourcecode archive (available in the Extras section of a version&#x27;s download page), there&#x27;s a plugins folder which has a C# project. It has a couple of plugins in sourcecode to illustrate how to create a simple plugin. &lt;/p&gt;&#xA;&lt;p&gt;See also: &lt;a href=&quot;https://www.llblgen.com/Documentation/5.13/Designer/Functionality%20Reference/PluginRunner.htm&quot; rel=&quot;nofollow&quot;&gt;https://www.llblgen.com/Documentation/5.13/Designer/Functionality%20Reference/PluginRunner.htm&lt;/a&gt; and for how to write a plugin: &lt;a href=&quot;https://www.llblgen.com/Documentation/5.13/SDK/gui_implementingplugin.htm&quot; rel=&quot;nofollow&quot;&gt;https://www.llblgen.com/Documentation/5.13/SDK/gui_implementingplugin.htm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The designer ships with a plugin called &#x27;Project inspector&#x27;. You can start it by right-clicking on the project node in the project explorer -&amp;gt; Run plugin -&amp;gt; Project inspector. It basically lists the entire object model represented by the project. It&#x27;s a visual way for you to navigate the object model so you can easily find what to change in your plugin. &lt;/p&gt;&#xA;&lt;p&gt;E.g. to iterate over all the entities, enumerate the EntityModel.Vertices collection. &#xD;&#xA;Additionally, the Project has an API, which is documented in the reference manual here: &lt;a href=&quot;https://www.llblgen.com/Documentation/5.13/ReferenceManuals/Designer/html/727B4215.htm&quot; rel=&quot;nofollow&quot;&gt;https://www.llblgen.com/Documentation/5.13/ReferenceManuals/Designer/html/727B4215.htm&lt;/a&gt;. As the designer uses an undo / redo system, it&#x27;s probably the easiest to wrap the entire process in an UndoablePeriodCommand. This is a command that can undo/redo everything in 1 go. As the designer is using an event system to keep everything in sync, changing something will cause a ripple effect of changed events at times. This isn&#x27;t noticeable other than in the project explorer which is repainted a lot because of that. So it&#x27;s crucial if you go the plugin route to make sure the plugin description states the project explorer has to be reset (See the sdk doc page linked above). &lt;/p&gt;&#xA;&lt;p&gt;To do that, use: &lt;/p&gt;&#xA;&lt;pre&gt;&lt;code class=&quot;cs&quot;&gt;var cmd = new UndoablePeriodCommand();&#xA;&#xA;CommandQueueManagerSingleton.GetInstance().BeginUndoablePeriod(cmd);&#xA;&#xA;// do work&#xA;&#xA;CommandQueueManagerSingleton.GetInstance().EndUndoablePeriod(cmd);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;You can also switch off the undo/redo system temporarily to speed things up by using: &lt;code&gt;CommandQueueManagerSingleton.GetInstance().BeginNonUndoablePeriod()&lt;/code&gt; and ending it with &lt;code&gt;CommandQueueManagerSingleton.GetInstance().EndNonUndoablePeriod()&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you want to do this in a CLI tool, you can, you then should look at one of the two CLI tools we ship in sourcecode form: the CLI refresher and the CLI generator. Both load the project and from there you can access it and do what you want with it, and as there&#x27;s no designer active, there&#x27;s no undo/redo system live as well. &lt;/p&gt;&#xA;&lt;p&gt;Renaming is a matter of setting the Name property of a new value. This won&#x27;t ripple through to relationships however. You have to iterate over these yourself and set the navigator names manually. The relationships in the model are the &lt;code&gt;Edges&lt;/code&gt; collection of the &lt;code&gt;EntityModel&lt;/code&gt; mentioned earlier. I&#x27;d first rename all entities, then all fields of each entity, then the relationships and then the Forfs. You don&#x27;t have to touch mappings or tables. &lt;/p&gt;&#xA;&lt;p&gt;To construct new names based on the patterns defined in the project, you can utilize the methods &lt;code&gt;CoreUtils.MakeCLSCompliantName&lt;/code&gt;, &lt;code&gt;CoreUtils.MakeUniqueName&lt;/code&gt;, &lt;code&gt;ApplicationUtils.CreateUniqueElementName&lt;/code&gt;, &lt;code&gt;ApplicationUtils.CreateNavigatorNames&lt;/code&gt;and there are some more you can utilize, see the reference manual for details. &lt;/p&gt;&#xA;&lt;p&gt;E.g. this is how the (sadly, internal) method &lt;code&gt;RelationshipEdge.ProduceUniqueNavigatorNames()&lt;/code&gt;  produces unique names in the reverse engineering process:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code class=&quot;cs&quot;&gt;string startNavigator;&#xA;string endNavigator;&#xA;ApplicationUtils.CreateNavigatorNames(this, containingProject.Properties, out startNavigator, out endNavigator);&#xA;startNavigator = CoreUtils.MakeUniqueName(new FieldNameValidator(this.StartVertex, containingProject) &#xA;                                                { AdditionalNavigatorsToCheck = additionalNavigatorsStartEntity }, startNavigator);&#xA;endNavigator = CoreUtils.MakeUniqueName(new FieldNameValidator(this.EndVertex, containingProject) &#xA;                                                { AdditionalNavigatorsToCheck = additionalNavigatorsEndEntity }, endNavigator);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Then you have to set the &lt;code&gt;NavigatorName&lt;/code&gt; property on the Navigator objects of the relationship. &lt;/p&gt;&#xA;&lt;p&gt;To test things out, you can also use the C# repl inside the designer, in the Element Search window &lt;img src=&quot;/tinyforum/pics/emojis/simple_smile.png&quot; class=&quot;emoji&quot; alt=&quot;simple_smile&quot;/&gt; You can write any C# there in the query pane and do whatever you want to the project elements, and it&#x27;ll run that as long as you e.g. return the expected object. &lt;/p&gt;&#xA;&lt;p&gt;Veel succes! &lt;img src=&quot;/tinyforum/pics/emojis/simple_smile.png&quot; class=&quot;emoji&quot; alt=&quot;simple_smile&quot;/&gt; &lt;/p&gt;&#xA;</description>
					<author>Otis</author>
					<link>https://llblgen.com/tinyforum/Thread/29067#154565</link>
					<pubdate>Fri, 16 Jan 2026 07:42:34 GMT</pubdate>
					<category>Change entitynames and fieldnames in llblgenproj-file from Dutch to English</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/29067#154565</guid>
				</item>
				<item>
					<title>Change entitynames and fieldnames in llblgenproj-file from Dutch to English by SanderF</title>
					<description>&lt;p&gt;We currently have approximately 500 entities with approximately 12,000 fields mapped in the LLBLGen designer. We intend to change the names of the entities and fields from Dutch to English. Is there a tool available within LLBLGen to do this? We&#x27;re working on a PowerShell script that does this based on an Excel sheet with translations and manipulating the .llblgenproj-file, but we&#x27;re running into several issues, such as relationships and forfs where names are sometimes separated by a :. This makes the conversion difficult. &lt;/p&gt;&#xA;</description>
					<author>SanderF</author>
					<link>https://llblgen.com/tinyforum/Thread/29067#154564</link>
					<pubdate>Thu, 15 Jan 2026 14:02:16 GMT</pubdate>
					<category>Change entitynames and fieldnames in llblgenproj-file from Dutch to English</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/29067#154564</guid>
				</item>
				<item>
					<title>Designer configure UseSqlOutputClause (EF) by Otis</title>
					<description>&lt;p&gt;We&#x27;ve added a project level setting and an entity level setting to control this in 5.13 which we hope to ship in beta before xmas. &lt;/p&gt;&#xA;</description>
					<author>Otis</author>
					<link>https://llblgen.com/tinyforum/Thread/29036#154507</link>
					<pubdate>Tue, 09 Dec 2025 08:46:06 GMT</pubdate>
					<category>Designer configure UseSqlOutputClause (EF)</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/29036#154507</guid>
				</item>
				<item>
					<title>Designer configure UseSqlOutputClause (EF) by Otis</title>
					<description>&lt;p&gt;This is possible, you can define a new templatebindings file with the binding for ModelBuilder.lpt, which is using the &lt;code&gt;SD_EF_Core_ModelBuilder&lt;/code&gt; templateID, and bind it to a different file. Then when defining the code generation task (F7 -&amp;gt; double click the task), specify the templatebindings file with your binding above the existing one in the templatebindings tab that&#x27;s visualized when you click &#x27;Advanced&#x27; button. &lt;/p&gt;&#xA;&lt;p&gt;More info about templatebindings: &lt;a href=&quot;https://www.llblgen.com/Documentation/5.12/Designer/Functionality%20Reference/TemplateBindingsViewer.htm&quot; rel=&quot;nofollow&quot;&gt;https://www.llblgen.com/Documentation/5.12/Designer/Functionality%20Reference/TemplateBindingsViewer.htm&lt;/a&gt; and &lt;a href=&quot;https://www.llblgen.com/Documentation/5.12/SDK/templates_templatesystem.htm#templatebindings-files-xml-format&quot; rel=&quot;nofollow&quot;&gt;https://www.llblgen.com/Documentation/5.12/SDK/templates_templatesystem.htm#templatebindings-files-xml-format&lt;/a&gt; &lt;/p&gt;&#xA;&lt;p&gt;This way you use an alternative version of the modelbuilder template during code generation, basically overriding the existing one shipped with the designer. &lt;/p&gt;&#xA;&lt;p&gt;An alternative could be to generate derived class for the model builder using a new template (which thus requires a new .lpt file and template bindings file and a new task added to the preset you&#x27;re using, see e.g. &lt;a href=&quot;https://www.llblgen.com/Documentation/5.12/Designer/How%20To/TemplatesAdd.htm&quot; rel=&quot;nofollow&quot;&gt;https://www.llblgen.com/Documentation/5.12/Designer/How%20To/TemplatesAdd.htm&lt;/a&gt;), and override the Map* methods for the entities which have fields with this setting, then first call the base method and then alter the properties which need this clause set. This might be a better solution as you don&#x27;t have to keep track of existing templates if they might get updated (so you then have to migrate those changes to your copy e.g. the copy of the ModelBuilder.lpt with your own changes)&lt;/p&gt;&#xA;</description>
					<author>Otis</author>
					<link>https://llblgen.com/tinyforum/Thread/29036#154395</link>
					<pubdate>Sun, 05 Oct 2025 06:29:48 GMT</pubdate>
					<category>Designer configure UseSqlOutputClause (EF)</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/29036#154395</guid>
				</item>
				<item>
					<title>Designer configure UseSqlOutputClause (EF) by AndreasIsWorking</title>
					<description>&lt;p&gt;Hi,&lt;/p&gt;&#xA;&lt;p&gt;To make this easier for my team and ensure consistency across environments, I&#x2019;d like to move the updated ModelBuilder file to a relative folder in our repository&lt;/p&gt;&#xA;&lt;p&gt;(making use of the Additional Templates Folder in project settings?)&lt;/p&gt;&#xA;&lt;p&gt;(e.g. /llblgen-templates/ModelBuilder/) and configure LLBLGen to generate code using that version of the file instead of the default one.&lt;/p&gt;&#xA;&lt;p&gt;Is there a supported way to override the default location of the ModelBuilder file or bind it to a custom path within the project settings?&lt;/p&gt;&#xA;</description>
					<author>AndreasIsWorking</author>
					<link>https://llblgen.com/tinyforum/Thread/29036#154393</link>
					<pubdate>Fri, 03 Oct 2025 08:19:53 GMT</pubdate>
					<category>Designer configure UseSqlOutputClause (EF)</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/29036#154393</guid>
				</item>
				<item>
					<title>Designer configure UseSqlOutputClause (EF) by AndreasIsWorking</title>
					<description>&lt;p&gt;LLBLGen Pro version:  5.12 (5.12.1) RTM&lt;/p&gt;&#xA;&lt;p&gt;.NET version: 8.0&lt;/p&gt;&#xA;&lt;p&gt;Database: SQL Server 2017&lt;/p&gt;&#xA;&lt;p&gt;Hi,&lt;/p&gt;&#xA;&lt;p&gt;I&#x27;m currently customizing the ModelBuilder template to conditionally apply .UseSqlOutputClause(false) during inserts in EF Core, based on a custom property (UseSqlOutputClause) defined in OutputSettingValues.CustomProperties. &lt;/p&gt;&#xA;&lt;p&gt;This helps us avoid issues with triggers and constraints in our database setup.&lt;/p&gt;&#xA;&lt;p&gt;At the moment, I&#x27;m manually updating the generated ModelBuilder file in the LLBLGen application programs folder after each code generation run.&lt;/p&gt;&#xA;&lt;p&gt;I&#x27;m not sure if LLBLGen already provides a built-in way to configure this behavior through the designer or metadata&#x2014;if it does, I&#x27;d love to know how to use it.&lt;/p&gt;&#xA;&lt;p&gt;If not, would it be possible to consider adding support for this in a future version, either as a per-entity setting or a global option?&lt;/p&gt;&#xA;&lt;p&gt;Thanks in advance for your help!&lt;/p&gt;&#xA;&lt;p&gt;Andreas&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;what i would like to achieve:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code class=&quot;cs&quot;&gt;protected virtual void MapAddressEntity(EntityTypeBuilder&amp;lt;AddressEntity&amp;gt; config)&#xA;{&#xA;    config.ToTable(&amp;quot;Address&amp;quot;, tb =&amp;gt; tb.UseSqlOutputClause(false));&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;how i currently fixed it: (modelbuilder.lpt)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code class=&quot;cs&quot;&gt;        protected virtual void Map&amp;lt;%=entity.Name%&amp;gt;(EntityTypeBuilder&amp;lt;&amp;lt;%=entity.Name%&amp;gt;&amp;gt; config)&#xA;        {&#xA;            &amp;lt;% var useSqlOutput = false;&#xA;            if(entity.OutputSettingValues.CustomProperties.ContainsKey(&amp;quot;UseSqlOutputClause&amp;quot;))&#xA;            {&#xA;                useSqlOutput = entity.OutputSettingValues.CustomProperties[&amp;quot;UseSqlOutputClause&amp;quot;].ToString().ToLower() == &amp;quot;true&amp;quot;;&#xA;            }&#xA;            %&amp;gt;config.ToTable(&amp;quot;&amp;lt;%=mapping.MappedTarget.Name%&amp;gt;&amp;quot;&amp;lt;%&#xA;                if(mapping.MappedTarget.ContainingSchema.SchemaOwner!=defaultSchema) { %&amp;gt;, &amp;quot;&amp;lt;%=mapping.MappedTarget.ContainingSchema.SchemaOwner%&amp;gt;&amp;quot;&amp;lt;% } &#xA;                if(supportsTemporalTables &amp;amp;&amp;amp; targetIsTemporalTable) { %&amp;gt;, b=&amp;gt;b.IsTemporal(b=&amp;gt; { b.HasPeriodStart(&amp;quot;&amp;lt;%=periodStartField.FieldName%&amp;gt;&amp;quot;); b.HasPeriodEnd(&amp;quot;&amp;lt;%=periodEndField.FieldName%&amp;gt;&amp;quot;);})&amp;lt;%}&#xA;                if(!string.IsNullOrEmpty(tptDifferentPkTargetNames)) { %&amp;gt;, &amp;lt;%=tptDifferentPkTargetNames%&amp;gt;&amp;lt;% } &#xA;                if(useSqlOutput) { %&amp;gt;, tb =&amp;gt; tb.UseSqlOutputClause(false)&amp;lt;% } &#xA;                %&amp;gt;);&#xA;&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;</description>
					<author>AndreasIsWorking</author>
					<link>https://llblgen.com/tinyforum/Thread/29036#154392</link>
					<pubdate>Fri, 03 Oct 2025 07:08:03 GMT</pubdate>
					<category>Designer configure UseSqlOutputClause (EF)</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/29036#154392</guid>
				</item>
				<item>
					<title>Migrate to SDK-Style Project File by Otis</title>
					<description>&lt;p&gt;The designer won&#x27;t overwrite a csproj file if it already exists. So you can do two things: use the netstandard2.0 preset and alter the generated csproj file to use netframework instead of netstandard20, or alter the net4.8 preset and specify the templateid for the netstandard20 vsproj template instead of the one that&#x27;s currently specified. You can edit the preset files right in the designer, and e.g. save it under your own name. &lt;/p&gt;&#xA;&lt;p&gt;In our unittests we use multitargeting and have altered the csproj files to multitarget both net452 and netstandard, then we generate the codebase using netstandard. &#xD;&#xA;You&#x27;ll miss some files that way tho: &lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the AssemblyFileInfo classes, which are onetime generated anyway so it&#x27;s not a big deal . &lt;/li&gt;&#xA;&lt;li&gt;the webserviceHelperClass which is likely not needed if you don&#x27;t do webservices the old way&lt;/li&gt;&#xA;&lt;li&gt;the webservice schema importer which is also unlikely you&#x27;ll need it. &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Generating the code base again leaves the csproj files as-is because as I said the designer won&#x27;t overwrite them &lt;img src=&quot;/tinyforum/pics/emojis/simple_smile.png&quot; class=&quot;emoji&quot; alt=&quot;simple_smile&quot;/&gt; &lt;/p&gt;&#xA;</description>
					<author>Otis</author>
					<link>https://llblgen.com/tinyforum/Thread/29028#154356</link>
					<pubdate>Tue, 16 Sep 2025 07:26:40 GMT</pubdate>
					<category>Migrate to SDK-Style Project File</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/29028#154356</guid>
				</item>
				<item>
					<title>Migrate to SDK-Style Project File by coachpotato</title>
					<description>&lt;dl&gt;&#xA;&lt;dd&gt;LLBLGen 5.11.5 &lt;/dd&gt;&#xA;&lt;dd&gt;SelfServicing (General) &lt;/dd&gt;&#xA;&lt;dd&gt;SQL Server 2017 &lt;/dd&gt;&#xA;&lt;dd&gt;.NET Framework 4.7.2&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;p&gt;We busy migrating to SQL Server 2022 (Azure SQL Managed Instance) and .NET Framework 4.8 (and eventually to newer .NET).&lt;/p&gt;&#xA;&lt;p&gt;Is there a way to set the designer to generate the project file using the new SDK-style format, and not the old verbose clunky format? &lt;/p&gt;&#xA;&lt;p&gt;Or is that only for .NET Standard 2.0&#x2B;?&lt;/p&gt;&#xA;&lt;p&gt;&amp;quot;Migrate packages.config to PackageReference&amp;quot; and &amp;quot;Upgrade&amp;quot; -&amp;gt; &amp;quot;Convert project to SDK-style&amp;quot; for all the solution projects (non ASP.NET) and libraries was very easy. &lt;/p&gt;&#xA;&lt;p&gt;Wondering if there is an easy way to set it in the Designer, or if I would need to convert it every time we regenerate the Data project, or if we need to upgrade to .NET Standard (which might have it&#x27;s own issues?) and update all the other projects and libraries (sigh!).&lt;/p&gt;&#xA;</description>
					<author>coachpotato</author>
					<link>https://llblgen.com/tinyforum/Thread/29028#154355</link>
					<pubdate>Mon, 15 Sep 2025 09:41:11 GMT</pubdate>
					<category>Migrate to SDK-Style Project File</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/29028#154355</guid>
				</item>
				<item>
					<title>Assigned type of field in designer is not emitted in the generated code although the field has a type shortcut assignment by Otis</title>
					<description>&lt;p&gt;Yes it&#x2019;s possible. What the designer needs are just types, it doesn&#x2019;t use them as in: the functionality in methods in the type aren&#x2019;t important, so if you have a .net framework dll with types with the same names, it&#x2019;ll emit the right type names in the generated code. The typeconverters for the designer the instantiate an instance of your types for the designer and it should work ok. &lt;/p&gt;&#xA;</description>
					<author>Otis</author>
					<link>https://llblgen.com/tinyforum/Thread/28998#154211</link>
					<pubdate>Wed, 07 May 2025 07:16:29 GMT</pubdate>
					<category>Assigned type of field in designer is not emitted in the generated code although the field has a type shortcut assignment</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/28998#154211</guid>
				</item>
				<item>
					<title>Assigned type of field in designer is not emitted in the generated code although the field has a type shortcut assignment by nasser_colliers</title>
					<description>&lt;p&gt;Thank you for your reply and the links!&lt;/p&gt;&#xA;&lt;p&gt;In the documentation you mentioned (https://www.llblgen.com/Documentation/5.12/Designer/Functionality%20Reference/SystemTypeConverters.htm), it appears as though I must create my types, as well as type converters in dotnet full framework (&amp;gt; 4.5.2).  &#xD;&lt;/p&gt;&#xA;&lt;p&gt;Now the types I&#x27;m required to emit as ids are created using this library: https://github.com/andrewlock/StronglyTypedId/.  This is a pure dotnet core library, and we cannot use it in full framework.  This means, that all the type converters and the generated types for the IDs will be generated using dotnet core.  Does this mean that I cannot read these types and their converters into LLBLGen?&lt;/p&gt;&#xA;&lt;p&gt;Best&lt;/p&gt;&#xA;</description>
					<author>nasser_colliers</author>
					<link>https://llblgen.com/tinyforum/Thread/28998#154209</link>
					<pubdate>Tue, 06 May 2025 17:13:08 GMT</pubdate>
					<category>Assigned type of field in designer is not emitted in the generated code although the field has a type shortcut assignment</category>
					<guid ispermalink="true">https://llblgen.com/tinyforum/Thread/28998#154209</guid>
				</item>
		</channel>
	</rss>
