Skip to content

Commit 3c70e93

Browse files
committed
ef aot sample project
1 parent 4b0e224 commit 3c70e93

File tree

5 files changed

+779
-0
lines changed

5 files changed

+779
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using Microsoft.EntityFrameworkCore;
5+
6+
namespace EFCoreAotQueriesBenchmarks
7+
{
8+
public class EFCoreAotBenchmarkContext : DbContext
9+
{
10+
public static bool OnModelCreatingRan { get; set; } = false;
11+
12+
public DbSet<MyEntity0> Entities0 { get; set; } = null!;
13+
public DbSet<MyEntity1> Entities1 { get; set; } = null!;
14+
public DbSet<MyEntity2> Entities2 { get; set; } = null!;
15+
public DbSet<MyEntity3> Entities3 { get; set; } = null!;
16+
public DbSet<MyEntity4> Entities4 { get; set; } = null!;
17+
public DbSet<MyEntity5> Entities5 { get; set; } = null!;
18+
public DbSet<MyEntity6> Entities6 { get; set; } = null!;
19+
public DbSet<MyEntity7> Entities7 { get; set; } = null!;
20+
public DbSet<MyEntity8> Entities8 { get; set; } = null!;
21+
public DbSet<MyEntity9> Entities9 { get; set; } = null!;
22+
23+
protected override void OnModelCreating(ModelBuilder modelBuilder)
24+
{
25+
OnModelCreatingRan = true;
26+
27+
modelBuilder.Entity<MyEntity0>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
28+
modelBuilder.Entity<MyEntity1>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
29+
modelBuilder.Entity<MyEntity2>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
30+
modelBuilder.Entity<MyEntity3>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
31+
modelBuilder.Entity<MyEntity4>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
32+
modelBuilder.Entity<MyEntity5>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
33+
modelBuilder.Entity<MyEntity6>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
34+
modelBuilder.Entity<MyEntity7>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
35+
modelBuilder.Entity<MyEntity8>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
36+
modelBuilder.Entity<MyEntity9>().OwnsMany(x => x.Owned, b => { b.ToJson(); });
37+
}
38+
39+
protected override void OnConfiguring(DbContextOptionsBuilder options)
40+
=> options.UseSqlite($"Data Source=efcoreaotbenchmark.db");
41+
}
42+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net9.0</TargetFramework>
5+
<OutputType>Exe</OutputType>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
<SelfContained>true</SelfContained>
9+
<InvariantGlobalization>false</InvariantGlobalization>
10+
<PublishAot>true</PublishAot>
11+
<InterceptorsPreviewNamespaces>$(InterceptorsPreviewNamespaces);Microsoft.EntityFrameworkCore.GeneratedInterceptors</InterceptorsPreviewNamespaces>
12+
</PropertyGroup>
13+
14+
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
15+
<Optimize>true</Optimize>
16+
</PropertyGroup>
17+
18+
<ItemGroup>
19+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="9.0.1" />
20+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tasks" Version="9.0.1">
21+
<PrivateAssets>all</PrivateAssets>
22+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
23+
</PackageReference>
24+
<PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="2.1.10" />
25+
</ItemGroup>
26+
27+
<ItemGroup>
28+
<None Update="efcoreaotbenchmark.db">
29+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
30+
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
31+
</None>
32+
</ItemGroup>
33+
34+
</Project>

0 commit comments

Comments
 (0)