Skip to content

Commit d4f974c

Browse files
authored
Upgrade to EF Core 9.0 (#247)
1 parent 4a47740 commit d4f974c

File tree

9 files changed

+53
-61
lines changed

9 files changed

+53
-61
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ Before creating a pull request, please refer to the [Contributing Guidelines](ht
1414

1515
## Prerequisites
1616

17-
- [Visual Studio 2022](https://www.visualstudio.com/downloads/) or greater, [JetBrains Rider](https://www.jetbrains.com/rider) 2022.2 or greater.
18-
- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet) or greater.
19-
- [EF Core CLI 8.0](https://docs.microsoft.com/en-us/ef/core/cli/dotnet) or greater.
17+
- [Visual Studio 2022](https://www.visualstudio.com/downloads/) or greater, [JetBrains Rider](https://www.jetbrains.com/rider) 2024.3 or greater.
18+
- [.NET 9.0 SDK](https://dotnet.microsoft.com/download/dotnet) or greater.
19+
- [EF Core CLI 9.0](https://docs.microsoft.com/en-us/ef/core/cli/dotnet) or greater.
2020
- Install global `dotnet-ef` tool.
2121
```
2222
dotnet tool install --global dotnet-ef
@@ -54,10 +54,10 @@ docker run -e "ACCEPT_EULA=1" -e "MSSQL_SA_PASSWORD=MyPass@word" -e "MSSQL_PID=D
5454
5555
## Upgrading
5656
57-
1. Upgrade `TargetFramework` in **.csproj** file to `net8.0`.
57+
1. Upgrade `TargetFramework` in **.csproj** file to `net8.0` or `net9.0`.
5858
- Optional: Set `ImplicitUsings` to `enable`.
5959
- Optional: Set `Nullable` to `enable`.
60-
2. Update the following NuGet packages to `8.0.0` or later:
60+
2. Update the following NuGet packages to `9.0.0` or later:
6161
- Microsoft.EntityFrameworkCore.Design
6262
- Microsoft.EntityFrameworkCore.SqlServer
6363
- EntityFrameworkCore.Scaffolding.Handlebars
@@ -69,7 +69,7 @@ docker run -e "ACCEPT_EULA=1" -e "MSSQL_SA_PASSWORD=MyPass@word" -e "MSSQL_PID=D
6969
7070
## Usage
7171
72-
1. Create a new **.NET 8** class library.
72+
1. Create a new **.NET 8** or **.NET 9** class library.
7373
7474
2. Add EF Core SQL Server and Tools NuGet packages.
7575
- `Microsoft.EntityFrameworkCore.SqlServer`

sample/ScaffoldingSample.Embedded/ScaffoldingSample.Embedded.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
10-
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0">
9+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
10+
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0">
1111
<PrivateAssets>all</PrivateAssets>
1212
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1313
</PackageReference>

sample/ScaffoldingSample.TypeScript/ScaffoldingSample.TypeScript.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
10-
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0">
9+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
10+
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0">
1111
<PrivateAssets>all</PrivateAssets>
1212
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1313
</PackageReference>

sample/ScaffoldingSample/Contexts/NorthwindSlimContext.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
3838
if (!optionsBuilder.IsConfigured)
3939
{
4040
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263.
41-
optionsBuilder.UseSqlServer("Data Source=(localdb)\\MSSQLLocalDB; Initial Catalog=NorthwindSlim; Integrated Security=True;");
41+
optionsBuilder.UseSqlServer("Server=localhost; Database=NorthwindSlim; User ID=sa;Password=MyPass@word; TrustServerCertificate=True;");
4242
}
4343
}
4444

@@ -55,7 +55,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
5555
{
5656
entity.ToTable("Customer");
5757

58-
entity.Property(e => e.CustomerId).HasMaxLength(5);
58+
entity.Property(e => e.CustomerId)
59+
.HasMaxLength(5)
60+
.IsFixedLength();
5961

6062
entity.Property(e => e.City).HasMaxLength(15);
6163

@@ -73,7 +75,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
7375

7476
entity.ToTable("CustomerSetting");
7577

76-
entity.Property(e => e.CustomerId).HasMaxLength(5);
78+
entity.Property(e => e.CustomerId)
79+
.HasMaxLength(5)
80+
.IsFixedLength();
7781

7882
entity.Property(e => e.Setting).HasMaxLength(50);
7983

@@ -120,7 +124,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
120124
{
121125
entity.ToTable("Order");
122126

123-
entity.Property(e => e.CustomerId).HasMaxLength(5);
127+
entity.Property(e => e.CustomerId)
128+
.HasMaxLength(5)
129+
.IsFixedLength();
124130

125131
entity.Property(e => e.Freight)
126132
.HasColumnType("money")

sample/ScaffoldingSample/ScaffoldingSample.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
11-
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0">
10+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
11+
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0">
1212
<PrivateAssets>all</PrivateAssets>
1313
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1414
</PackageReference>

src/EntityFrameworkCore.Scaffolding.Handlebars/EntityFrameworkCore.Scaffolding.Handlebars.csproj

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<TargetFramework>net8.0</TargetFramework>
55
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
6-
<Version>8.0.0</Version>
6+
<Version>9.0.0-beta1</Version>
77
<Authors>Tony Sneed</Authors>
88
<Company>Tony Sneed</Company>
99
<Title>Entity Framework Core Scaffolding with Handlebars</Title>
@@ -12,28 +12,30 @@
1212
<PackageProjectUrl>https://github.com/TrackableEntities/EntityFrameworkCore.Scaffolding.Handlebars</PackageProjectUrl>
1313
<PackageIcon>icon.png</PackageIcon>
1414
<PackageTags>scaffolding reverse-engineer entity-framework-core handlebars</PackageTags>
15-
<PackageReleaseNotes>See: https://github.com/TrackableEntities/EntityFrameworkCore.Scaffolding.Handlebars/releases/tag/v8.0.0</PackageReleaseNotes>
15+
<PackageReleaseNotes>See: https://github.com/TrackableEntities/EntityFrameworkCore.Scaffolding.Handlebars/releases/tag/v9.0.0-beta1</PackageReleaseNotes>
1616
<LangVersion>latest</LangVersion>
1717
<IncludeSource>true</IncludeSource>
1818
<SignAssembly>true</SignAssembly>
1919
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
20-
<AssemblyVersion>8.0.0.0</AssemblyVersion>
21-
<FileVersion>8.0.0.0</FileVersion>
22-
<GenerateDocumentationFile>True</GenerateDocumentationFile>
20+
<AssemblyVersion>9.0.0.0</AssemblyVersion>
21+
<FileVersion>9.0.0.0</FileVersion>
22+
<GenerateDocumentationFile>True</GenerateDocumentationFile>
23+
<PackageReadmeFile>README.md</PackageReadmeFile>
2324
</PropertyGroup>
2425

25-
<ItemGroup>
26-
<None Include="icon.png" Pack="true" Visible="false" PackagePath="" />
27-
</ItemGroup>
28-
2926
<ItemGroup>
3027
<PackageReference Include="Handlebars.Net" Version="2.1.2" />
31-
<PackageReference Include="JetBrains.Annotations" Version="2023.3.0" />
32-
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="8.0.0" />
33-
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0" />
28+
<PackageReference Include="JetBrains.Annotations" Version="2024.3.0" />
29+
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0" />
30+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.0" />
3431
</ItemGroup>
3532

36-
<ItemGroup>
33+
<ItemGroup>
34+
<None Include="icon.png" Pack="true" Visible="false" PackagePath="" />
35+
<None Include="..\..\README.md" Pack="true" PackagePath="\" />
36+
</ItemGroup>
37+
38+
<ItemGroup>
3739
<Content Include="EntityFrameworkCore.Scaffolding.Handlebars.targets" PackagePath="build/EntityFrameworkCore.Scaffolding.Handlebars.targets" />
3840
<Content Include="CodeTemplates/**/*.*" Pack="true" PackagePath="lib/net8.0/CodeTemplates">
3941
<PackageCopyToOutput>true</PackageCopyToOutput>

src/EntityFrameworkCore.Scaffolding.Handlebars/HbsCSharpModelGenerator.cs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -146,13 +146,9 @@ public virtual ScaffoldedModel GenerateModel(IModel model, ModelCodeGenerationOp
146146
options.SuppressOnConfiguring);
147147

148148
var dbContextFileName = ContextTransformationService.TransformContextFileName(options.ContextName) + FileExtension;
149-
resultingFiles.ContextFile = new ScaffoldedFile
150-
{
151-
Path = options.ContextDir != null
152-
? Path.Combine(options.ContextDir, dbContextFileName)
153-
: dbContextFileName,
154-
Code = generatedCode
155-
};
149+
resultingFiles.ContextFile = new ScaffoldedFile(options.ContextDir != null
150+
? Path.Combine(options.ContextDir, dbContextFileName)
151+
: dbContextFileName, generatedCode);
156152
}
157153

158154
if (!(CSharpEntityTypeGenerator is NullCSharpEntityTypeGenerator))
@@ -177,11 +173,7 @@ public virtual ScaffoldedModel GenerateModel(IModel model, ModelCodeGenerationOp
177173
? Path.Combine(CSharpHelper.Namespace(schema), transformedFileName + FileExtension)
178174
: transformedFileName + FileExtension;
179175
resultingFiles.AdditionalFiles.Add(
180-
new ScaffoldedFile
181-
{
182-
Path = entityTypeFileName,
183-
Code = generatedCode
184-
});
176+
new ScaffoldedFile(entityTypeFileName, generatedCode));
185177
}
186178
}
187179

src/EntityFrameworkCore.Scaffolding.Handlebars/HbsTypeScriptModelGenerator.cs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,9 @@ public virtual ScaffoldedModel GenerateModel(IModel model, ModelCodeGenerationOp
138138
options.SuppressOnConfiguring);
139139

140140
var dbContextFileName = ContextTransformationService.TransformContextFileName(options.ContextName) + ".cs";
141-
resultingFiles.ContextFile = new ScaffoldedFile
142-
{
143-
Path = options.ContextDir != null
144-
? Path.Combine(options.ContextDir, dbContextFileName)
145-
: dbContextFileName,
146-
Code = generatedCode
147-
};
141+
resultingFiles.ContextFile = new ScaffoldedFile(options.ContextDir != null
142+
? Path.Combine(options.ContextDir, dbContextFileName)
143+
: dbContextFileName, generatedCode);
148144
}
149145

150146
if (!(CSharpEntityTypeGenerator is NullCSharpEntityTypeGenerator))
@@ -163,11 +159,7 @@ public virtual ScaffoldedModel GenerateModel(IModel model, ModelCodeGenerationOp
163159
entityTypeFileName = entityType.GetSchema() + @"\" + entityTypeFileName;
164160
}
165161
resultingFiles.AdditionalFiles.Add(
166-
new ScaffoldedFile
167-
{
168-
Path = entityTypeFileName,
169-
Code = generatedCode
170-
});
162+
new ScaffoldedFile(entityTypeFileName, generatedCode));
171163
}
172164
}
173165

test/Scaffolding.Handlebars.Tests/Scaffolding.Handlebars.Tests.csproj

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212
</ItemGroup>
1313

1414
<ItemGroup>
15-
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0" />
16-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
17-
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
18-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
19-
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
20-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
21-
<PackageReference Include="xunit" Version="2.6.2" />
22-
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.4">
15+
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0" />
16+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
17+
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.0" />
18+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
19+
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.0" />
20+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
21+
<PackageReference Include="xunit" Version="2.9.2" />
22+
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
2323
<PrivateAssets>all</PrivateAssets>
2424
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2525
</PackageReference>

0 commit comments

Comments
 (0)