EF6 Kod Tabanlı Modeli EF Core'a Taşıma

Tüm uyarıları okuduysanız ve taşımaya hazırsanız, başlamanıza yardımcı olacak bazı yönergeler aşağıdadır.

EF Core NuGet paketlerini yükleme

EF Core'u kullanmak için, kullanmak istediğiniz veritabanı sağlayıcısı için NuGet paketini yüklersiniz. Örneğin, SQL Server'ı hedeflerken uygulamasını yüklersiniz Microsoft.EntityFrameworkCore.SqlServer. Ayrıntılar için bkz . Veritabanı Sağlayıcıları .

Geçişleri kullanmayı planlıyorsanız paketi de yüklemeniz Microsoft.EntityFrameworkCore.Tools gerekir.

EF Core ve EF6 aynı uygulamada yan yana kullanılabildiğinden EF6 NuGet paketinin (EntityFramework) yüklü bırakılması normaldir. Bununla birlikte, EF6'yı uygulamanızın herhangi bir alanında kullanmayı düşünmüyorsanız paketin kaldırılması, dikkat gerektiren kod parçaları üzerinde derleme hataları sağlamaya yardımcı olur.

Ad alanlarını değiştirme

EF6'da kullandığınız çoğu API ad alanındadır System.Data.Entity (ve ilgili alt ad alanları). İlk kod değişikliği ad alanına geçmektir Microsoft.EntityFrameworkCore . Genellikle türetilmiş bağlam kodu dosyanızla başlar ve ardından derleme hatalarını oluştuğunda gidererek oradan çalışırsınız.

Bağlam yapılandırması (bağlantı vb.)

Veritabanı bağlantısını yapılandırma konusunda açıklandığı gibi EF Core, bağlanacak veritabanını algılama konusunda daha az büyüye sahiptir. Türetilmiş bağlamınızdaki yöntemini geçersiz kılmanız OnConfiguring ve veritabanı bağlantısı kurmak için veritabanı sağlayıcısına özgü API'yi kullanmanız gerekir.

Çoğu EF6 uygulaması, bağlantı dizesi uygulamalar dosyasında depolarApp/Web.config. EF Core'da api kullanarak ConfigurationManager bu bağlantı dizesi okursunuz. Bu API'yi kullanabilmek için System.Configuration çerçeve derlemesine bir başvuru eklemeniz gerekebilir.

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
      optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings["BloggingDatabase"].ConnectionString);
    }
}

Kodunuzu güncelleştirme

Bu noktada, davranış değişikliklerinin sizi etkileyip etkilemediğini görmek için derleme hatalarını ele almak ve kodu gözden geçirmek önemlidir.

Mevcut geçişler

Mevcut EF6 geçişlerini EF Core'a taşımanın gerçekten uygun bir yolu yoktur.

Mümkünse, EF6'dan önceki tüm geçişlerin veritabanına uygulandığını varsaymak ve ardından EF Core kullanarak şemayı bu noktadan geçirmeyi başlatmak en iyisidir. Bunu yapmak için komutunu kullanarak Add-Migration model EF Core'a taşınırken geçiş ekleyebilirsiniz. Ardından, iskelesi oluşturulmuş geçişin Up ve Down yöntemlerinden tüm kodları kaldırabilirsiniz. Sonraki geçişler, ilk geçişin iskelesi yapıldığında modelle karşılaştırılır.

Bağlantı noktasını test edin

Uygulamanızın derlenmiş olması, EF Core'a başarıyla taşınabilir olduğu anlamına gelmez. Davranış değişikliklerinden hiçbirinin uygulamanızı olumsuz etkilemediğinden emin olmak için uygulamanızın tüm alanlarını test etmeniz gerekir.

Son olarak, kodunuzda belirli servis talepleri ve senaryolar hakkında daha fazla öneri almak için taşıma sırasında dikkate alınacak ayrıntılı servis taleplerini gözden geçirin.