diff --git a/src/EntityFrameworkCore.Generator.Core/Extensions/GenerationExtensions.cs b/src/EntityFrameworkCore.Generator.Core/Extensions/GenerationExtensions.cs index fcf2c6c4..8df90ff8 100644 --- a/src/EntityFrameworkCore.Generator.Core/Extensions/GenerationExtensions.cs +++ b/src/EntityFrameworkCore.Generator.Core/Extensions/GenerationExtensions.cs @@ -190,10 +190,22 @@ private static void ProcessGenericType(StringBuilder builder, Type type, Type[] var genericPartIndex = type.Name.IndexOf('`'); if (genericPartIndex <= 0) { - builder.Append(type.Name); + if (type.Namespace.HasValue() && _defaultNamespaces.Contains(type.Namespace)) + { + builder.Append(type.Name); + } + else + { + builder.Append(type.FullName ?? type.Name); + } return; } + if (type.Namespace.HasValue() && !_defaultNamespaces.Contains(type.Namespace)) + { + builder.Append(type.Namespace); + builder.Append("."); + } builder.Append(type.Name, 0, genericPartIndex); builder.Append('<'); diff --git a/test/EntityFrameworkCore.Generator.Core.Tests/CodeGeneratorTests.cs b/test/EntityFrameworkCore.Generator.Core.Tests/CodeGeneratorTests.cs index 75bac088..d16146e1 100644 --- a/test/EntityFrameworkCore.Generator.Core.Tests/CodeGeneratorTests.cs +++ b/test/EntityFrameworkCore.Generator.Core.Tests/CodeGeneratorTests.cs @@ -80,6 +80,8 @@ public void GenerateSpatial() [InlineData(typeof(List>), "List>")] [InlineData(typeof(int[]), "int[]")] [InlineData(typeof(string[][]), "string[][]")] + [InlineData(typeof(System.Net.IPAddress[]), "System.Net.IPAddress[]")] + [InlineData(typeof(System.ComponentModel.BindingList), "System.ComponentModel.BindingList")] public void ConvertToTypeString(Type type, string expected) => Assert.Equal(expected, type.ToType()); }