Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
EF 9'dan başlayarak, derlenmiş modeli ve önceden derlenmiş sorguları proje oluşturulduğunda veya yayımlandığında otomatik olarak oluşturmak için MSBuild görevi kullanabilirsiniz. Bu, temel olarak NativeAOT yayımlama ile birlikte kullanılmaya yöneliktir.
Uyarı
NativeAOT desteği ve MSBuild tümleştirmesi deneysel özelliklerdir ve henüz üretim kullanımı için uygun değildir.
Görevleri yükleme
Başlamak için Microsoft.EntityFrameworkCore.Tasks NuGet paketini yükleyin. Örneğin:
dotnet add package Microsoft.EntityFrameworkCore.Tasks
Not
Oluşturulan dosyalarla derlenmesi gereken her proje NuGet paketine başvurmalıdır; varsayılan olarak geçişli değildir.
Görevlerin kullanımı
Proje belirtirse <PublishAot>true</PublishAot> , MSBuild görevi varsayılan olarak yayımlama sırasında derlenmiş bir model ve önceden derlenmiş sorgular oluşturur. Aksi takdirde, oluşturma davranışını denetlemek için aşağıdaki özellikleri ayarlayabilirsiniz:
| MSBuild özelliği | Açıklama |
|---|---|
| EFOptimizeContext |
true MSBuild tümleştirmesini etkinleştirmek için olarak ayarlayın.
Yalnızca EF Core 9-10; EF Core 11'de kaldırıldı. |
| EFScaffoldModelStage |
publishderlenen modelin hangi aşamada oluşturulacağını belirtmek için veya buildnone olarak ayarlayın. varsayılan değeridir publish. |
| EFPrecompileQueriesStage |
publish
build olarak ayarlayın veya none önceden derlenmiş sorguların hangi aşamada oluşturulacağını belirtin. varsayılan değeridir publish. |
| DbContextName | Kullanılacak türetilmiş DbContext sınıf. Yalnızca sınıf adı veya ad alanlarıyla tam olarak nitelenmiş. Bu seçenek atlanırsa EF Core, projedeki tüm bağlam sınıfları için oluşturma gerçekleştirir. |
| EFTargetNamespace | Oluşturulan tüm sınıflar için kullanılacak ad alanı. Bu seçenek atlanırsa EF Core kullanır $(RootNamespace). |
| EFOutputDir | Proje derlenmeden önce oluşturulan dosyaların koyulacağı klasör. Bu seçenek atlanırsa EF Core kullanır $(IntermediateOutputPath). |
| EFNullable | Oluşturulan kodda null atanabilir başvuru türlerinin kullanılıp kullanılmayacağı. Bu seçenek atlanırsa EF Core kullanır $(Nullable). |
Not
EF Core 11'den başlayarak, EFOptimizeContext özelliği kaldırıldı.
EFScaffoldModelStage ve EFPrecompileQueriesStage özellikleri artık bağımsız olarak çalışır ve ek etkinleştirme bayrağı gerektirmez.
Sınırlamalar
-
publishaşamasında tümleştirmeyi kullanırken başlangıç projesinde rid'i de ayarlayın (örneğin, <RuntimeIdentifier>win-x64</RuntimeIdentifier>) - Ters derleme bağımlılığına neden olacağından bu yaklaşım kullanılırken farklı bir başlangıç projesi belirtilemez. Bu, bağlam projesinin yapılandırma açısından otomatik olarak üretilmesi gerektiği anlamına gelir; dolayısıyla uygulamanız normalde farklı bir projede konak oluşturucu kullanarak bağlamı yapılandırırsa bağlam projesinde IDesignTimeDbContextFactory<TContext> uygulamanız gerekir.
- Derlenen model oluşturulmadan önce projenin derlenebilir olması gerektiğinden, bu yaklaşım derlenen modeli özelleştirmek için kısmi yöntem uygulamalarını desteklemez.
- Şu anda, bu her zaman nativeAOT için gerekli olan derlenmiş modelde ek kod oluşturur. NativeAOT'yi etkinleştirmeyi planlamıyorsanız, CLI araçlarını kullanarak derlenmiş modeli oluşturun.