When using both parameters --entitiestokeep and --entitiestoexlude it can happen that a NullReferenceException is thrown.
This happens when --entitiestokeep does not retain the entities that are then specified to be excluded by --entitiestoexclude. Since the entities were already removed by --entitiestokeep, the logic for --entitiestoexclude then tries to remove entities that were already removed.
Here is a sample call for a D365FO .edmx file that causes the exception:
.\EDMXTrimmer.exe --edmxfile=C:\Temp\d365fo-odata.edmx --entitiestokeep=DataManagementDefinitionGroups --entitiestoexclude=RetailReturnPolicies --verbose
EDMX Saved to file: Output.edmx
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at EDMXTrimmer.EdmxTrimmer.<>c.<RemoveEntitySets>b__40_0(XmlNode n) in C:\Repositories\EDMXTrimmer\EDMXTrimmer\EDMXTrimmer\EdmxTrimmer.cs:line 134
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at EDMXTrimmer.EdmxTrimmer.RemoveEntitySets(List`1 entitySets, List`1 entitiesKeep) in C:\Repositories\EDMXTrimmer\EDMXTrimmer\EDMXTrimmer\EdmxTrimmer.cs:line 134
at EDMXTrimmer.EdmxTrimmer.RemoveExcludedEntities(List`1 entitiesToExclude, List`1 entitySets, List`1 entityTypes) in C:\Repositories\EDMXTrimmer\EDMXTrimmer\EDMXTrimmer\EdmxTrimmer.cs:line 107
at EDMXTrimmer.EdmxTrimmer.AnalyzeFile() in C:\Repositories\EDMXTrimmer\EDMXTrimmer\EDMXTrimmer\EdmxTrimmer.cs:line 76
at EDMXTrimmer.Program.Main(String[] args) in C:\Repositories\EDMXTrimmer\EDMXTrimmer\EDMXTrimmer\Program.cs:line 63
When using both parameters
--entitiestokeep
and--entitiestoexlude
it can happen that a NullReferenceException is thrown.This happens when
--entitiestokeep
does not retain the entities that are then specified to be excluded by--entitiestoexclude
. Since the entities were already removed by--entitiestokeep
, the logic for--entitiestoexclude
then tries to remove entities that were already removed.Here is a sample call for a D365FO .edmx file that causes the exception: