DbContext Sınıf

Tanım

DbContext örneği, veritabanı ile bir oturumu temsil eder ve varlıklarınızın örneklerini sorgulamak ve kaydetmek için kullanılabilir. DbContext, Iş biriminin ve depo desenlerinin bir birleşimidir.

public class DbContext : IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>
public class DbContext : IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies, Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable, Microsoft.EntityFrameworkCore.Internal.IDbSetCache
public class DbContext : IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies, Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable, Microsoft.EntityFrameworkCore.Internal.IDbQueryCache, Microsoft.EntityFrameworkCore.Internal.IDbSetCache
public class DbContext : IAsyncDisposable, IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies, Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable, Microsoft.EntityFrameworkCore.Internal.IDbSetCache
type DbContext = class
    interface IDisposable
    interface IInfrastructure<IServiceProvider>
type DbContext = class
    interface IDisposable
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbContextPoolable
type DbContext = class
    interface IDisposable
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbQueryCache
    interface IDbContextPoolable
type DbContext = class
    interface IDisposable
    interface IAsyncDisposable
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbContextPoolable
    interface IResettableService
Public Class DbContext
Implements IDisposable, IInfrastructure(Of IServiceProvider)
Public Class DbContext
Implements IDbContextDependencies, IDbContextPoolable, IDbSetCache, IDisposable, IInfrastructure(Of IServiceProvider)
Public Class DbContext
Implements IDbContextDependencies, IDbContextPoolable, IDbQueryCache, IDbSetCache, IDisposable, IInfrastructure(Of IServiceProvider)
Public Class DbContext
Implements IAsyncDisposable, IDbContextDependencies, IDbContextPoolable, IDbSetCache, IDisposable, IInfrastructure(Of IServiceProvider)
Devralma
DbContext
Uygulamalar
IInfrastructure<IServiceProvider> IDisposable Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable Microsoft.EntityFrameworkCore.Internal.IDbSetCache Microsoft.EntityFrameworkCore.Internal.IDbQueryCache IResettableService IAsyncDisposable

Açıklamalar

Genellikle DbContext ' ten türetilen ve DbSet<TEntity> modeldeki her varlık için özellikler içeren bir sınıf oluşturursunuz. DbSet<TEntity>Özelliklerin ortak bir ayarlayıcısı varsa, bunlar otomatik olarak türetilmiş bağlamın örneği oluşturulduğunda başlatılır.

OnConfiguring(DbContextOptionsBuilder)Bağlam için kullanılacak veritabanını (ve diğer seçenekleri) yapılandırmak için yöntemini geçersiz kılın. Alternatif olarak, bağlam içinde iç satır yerine yapılandırmayı dışarıdan yapmayı tercih ediyorsanız, (veya) ' DbContextOptionsBuilder<TContext> DbContextOptionsBuilder nin bir örneğini dışarıdan oluşturmak için (veya) kullanabilirsiniz DbContextOptions<TContext> DbContextOptions ve bunu bir temel oluşturucuya geçirebilirsiniz DbContext .

Model, türetilmiş bağlamdaki özelliklerde bulunan varlık sınıfları üzerinde bir dizi kural çalıştırılarak bulunur DbSet<TEntity> . Kural tarafından bulunan modeli daha fazla yapılandırmak için yöntemini geçersiz kılabilirsiniz OnModelCreating(ModelBuilder) .

Oluşturucular

DbContext()

DbContext sınıfının yeni bir örneğini başlatır. OnConfiguring(DbContextOptionsBuilder) yöntemi, bu bağlam için kullanılacak veritabanını (ve diğer seçenekleri) yapılandırmak için çağrılır.

DbContext(DbContextOptions)

DbContextBelirtilen seçenekleri kullanarak sınıfının yeni bir örneğini başlatır. OnConfiguring(DbContextOptionsBuilder)Bu yöntem, seçeneklerin daha fazla yapılandırılmasına izin vermek için yine de çağırılır.

Özellikler

ChangeTracker

Bu bağlam izlenirken varlık örneklerine yönelik bilgilere ve işlemlere erişim sağlar.

ContextId

Varsa, bağlam örneği ve havuz kirası için benzersiz bir tanımlayıcı.

Bu tanımlayıcı, genellikle günlüğe kaydetme ve hata ayıklama için bir bağıntı KIMLIĞI, birden çok olayın aynı veya farklı bağlam örneklerini kullandığını belirlemek için tasarlanmıştır.

Database

Bu bağlam için veritabanıyla ilgili bilgi ve işlemlere erişim sağlar.

Model

Varlıkların şekli, aralarındaki ilişkiler ve veritabanına nasıl eşlendikleri hakkında meta veriler.

Yöntemler

Add(Object)

, Added Çağrıldığında veritabanına eklenebilecekleri şekilde, belirtilen varlığı ve henüz izlenmekte olmayan diğer erişilebilir varlıkları izlemeye başlar SaveChanges() .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

Add<TEntity>(TEntity)

, Added Çağrıldığında veritabanına eklenebilecekleri şekilde, belirtilen varlığı ve henüz izlenmekte olmayan diğer erişilebilir varlıkları izlemeye başlar SaveChanges() .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

AddAsync(Object, CancellationToken)

, Added Çağrıldığında veritabanına eklenebilecekleri şekilde, belirtilen varlığı ve henüz izlenmekte olmayan diğer erişilebilir varlıkları izlemeye başlar SaveChanges() .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

Bu yöntem, zaman uyumsuz olarak veritabanına erişmek için ' Microsoft. EntityFrameworkCore. Metadata. Sqlservervaluegenerationstrateji. Sequencechild o ' tarafından kullanılan özel değer oluşturucularını sağlamak için zaman uyumsuz. Diğer tüm durumlarda, zaman uyumsuz olmayan yöntemin kullanılması gerekir.

AddAsync<TEntity>(TEntity, CancellationToken)

, Added Çağrıldığında veritabanına eklenebilecekleri şekilde, belirtilen varlığı ve henüz izlenmekte olmayan diğer erişilebilir varlıkları izlemeye başlar SaveChanges() .

Bu yöntem, zaman uyumsuz olarak veritabanına erişmek için ' Microsoft. EntityFrameworkCore. Metadata. Sqlservervaluegenerationstrateji. Sequencechild o ' tarafından kullanılan özel değer oluşturucularını sağlamak için zaman uyumsuz. Diğer tüm durumlarda, zaman uyumsuz olmayan yöntemin kullanılması gerekir.

AddRange(IEnumerable<Object>)

, Added Çağrıldığında veritabanına eklenebilecekleri şekilde, belirtilen varlıkları ve henüz izlenmekte olmayan diğer erişilebilir varlıkları izlemeye başlar SaveChanges() .

AddRange(Object[])

, Added Çağrıldığında veritabanına eklenebilecekleri şekilde, belirtilen varlıkları ve henüz izlenmekte olmayan diğer erişilebilir varlıkları izlemeye başlar SaveChanges() .

AddRangeAsync(IEnumerable<Object>, CancellationToken)

, Added Çağrıldığında veritabanına eklenebilecekleri şekilde, belirtilen varlığı ve henüz izlenmekte olmayan diğer erişilebilir varlıkları izlemeye başlar SaveChanges() .

Bu yöntem, zaman uyumsuz olarak veritabanına erişmek için ' Microsoft. EntityFrameworkCore. Metadata. Sqlservervaluegenerationstrateji. Sequencechild o ' tarafından kullanılan özel değer oluşturucularını sağlamak için zaman uyumsuz. Diğer tüm durumlarda, zaman uyumsuz olmayan yöntemin kullanılması gerekir.

AddRangeAsync(Object[])

, Added Çağrıldığında veritabanına eklenebilecekleri şekilde, belirtilen varlığı ve henüz izlenmekte olmayan diğer erişilebilir varlıkları izlemeye başlar SaveChanges() .

Bu yöntem, zaman uyumsuz olarak veritabanına erişmek için ' Microsoft. EntityFrameworkCore. Metadata. Sqlservervaluegenerationstrateji. Sequencechild o ' tarafından kullanılan özel değer oluşturucularını sağlamak için zaman uyumsuz. Diğer tüm durumlarda, zaman uyumsuz olmayan yöntemin kullanılması gerekir.

Attach(Object)

, Varsayılan olarak durum kullanılarak belirtilen varlıktan erişilebilen verilen varlığı ve girdileri izlemeye başlar Unchanged , ancak farklı bir durum kullanılacak durumlar için aşağıya bakın.

Genellikle, çağrılana kadar hiçbir veritabanı etkileşimi gerçekleştirilmez SaveChanges() .

Zaten bağlam tarafından izlenmeyen erişilebilir varlıkları bulmak için gezinti özelliklerinin özyinelemeli araması gerçekleştirilecek. Bulunan tüm varlıklar bağlam tarafından izlenir.

Bir varlığın birincil anahtar değeri ayarlandıysa, oluşturulan anahtarları olan varlık türleri için Unchanged durumunda izlenir. Birincil anahtar değeri ayarlanmamışsa, Added durumunda izlenir. Bu, yalnızca yeni varlıkların eklenebilmenizi sağlamaya yardımcı olur. Birincil anahtar özelliği, özellik türü için CLR varsayılandan farklı bir değere ayarlandıysa, bir varlık birincil anahtar değerinin ayarlanmış olduğu kabul edilir.

Oluşturulan anahtarlar olmadan varlık türleri için, durum kümesi her zaman olur Unchanged .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

Attach<TEntity>(TEntity)

, Varsayılan olarak durum kullanılarak belirtilen varlıktan erişilebilen verilen varlığı ve girdileri izlemeye başlar Unchanged , ancak farklı bir durum kullanılacak durumlar için aşağıya bakın.

Genellikle, çağrılana kadar hiçbir veritabanı etkileşimi gerçekleştirilmez SaveChanges() .

Zaten bağlam tarafından izlenmeyen erişilebilir varlıkları bulmak için gezinti özelliklerinin özyinelemeli araması gerçekleştirilecek. Bulunan tüm varlıklar bağlam tarafından izlenir.

Bir varlığın birincil anahtar değeri ayarlandıysa, oluşturulan anahtarları olan varlık türleri için Unchanged durumunda izlenir. Birincil anahtar değeri ayarlanmamışsa, Added durumunda izlenir. Bu, yalnızca yeni varlıkların eklenebilmenizi sağlamaya yardımcı olur. Birincil anahtar özelliği, özellik türü için CLR varsayılandan farklı bir değere ayarlandıysa, bir varlık birincil anahtar değerinin ayarlanmış olduğu kabul edilir.

Oluşturulan anahtarlar olmadan varlık türleri için, durum kümesi her zaman olur Unchanged .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

AttachRange(IEnumerable<Object>)

, Varsayılan olarak durum kullanılarak verilen varlıklardan erişilebilen verilen varlıkları ve girdileri izlemeye başlar Unchanged , ancak farklı bir durum kullanılacak durumlar için aşağıya bakın.

Genellikle, çağrılana kadar hiçbir veritabanı etkileşimi gerçekleştirilmez SaveChanges() .

Zaten bağlam tarafından izlenmeyen erişilebilir varlıkları bulmak için gezinti özelliklerinin özyinelemeli araması gerçekleştirilecek. Bulunan tüm varlıklar bağlam tarafından izlenir.

Bir varlığın birincil anahtar değeri ayarlandıysa, oluşturulan anahtarları olan varlık türleri için Unchanged durumunda izlenir. Birincil anahtar değeri ayarlanmamışsa, Added durumunda izlenir. Bu, yalnızca yeni varlıkların eklenebilmenizi sağlamaya yardımcı olur. Birincil anahtar özelliği, özellik türü için CLR varsayılandan farklı bir değere ayarlandıysa, bir varlık birincil anahtar değerinin ayarlanmış olduğu kabul edilir.

Oluşturulan anahtarlar olmadan varlık türleri için, durum kümesi her zaman olur Unchanged .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

AttachRange(Object[])

, Varsayılan olarak durum kullanılarak verilen varlıklardan erişilebilen verilen varlıkları ve girdileri izlemeye başlar Unchanged , ancak farklı bir durum kullanılacak durumlar için aşağıya bakın.

Genellikle, çağrılana kadar hiçbir veritabanı etkileşimi gerçekleştirilmez SaveChanges() .

Zaten bağlam tarafından izlenmeyen erişilebilir varlıkları bulmak için gezinti özelliklerinin özyinelemeli araması gerçekleştirilecek. Bulunan tüm varlıklar bağlam tarafından izlenir.

Bir varlığın birincil anahtar değeri ayarlandıysa, oluşturulan anahtarları olan varlık türleri için Unchanged durumunda izlenir. Birincil anahtar değeri ayarlanmamışsa, Added durumunda izlenir. Bu, yalnızca yeni varlıkların eklenebilmenizi sağlamaya yardımcı olur. Birincil anahtar özelliği, özellik türü için CLR varsayılandan farklı bir değere ayarlandıysa, bir varlık birincil anahtar değerinin ayarlanmış olduğu kabul edilir.

Oluşturulan anahtarlar olmadan varlık türleri için, durum kümesi her zaman olur Unchanged .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

Dispose()

Bu bağlam için ayrılan kaynakları serbest bırakır.

DisposeAsync()

Bu bağlam için ayrılan kaynakları serbest bırakır.

Entry(Object)

EntityEntryVerilen varlık için bir alır. Giriş, varlık için değişiklik izleme bilgilerine ve işlemlerine erişim sağlar.

Bu yöntem, izlenmeyen bir varlıkta çağrılabilir. Ardından State döndürülen girişte özelliği, içeriğin belirtilen durumda varlığı izlemeye başlamasını sağlamak için ayarlayabilirsiniz.

Entry<TEntity>(TEntity)

EntityEntry<TEntity>Verilen varlık için bir alır. Giriş, varlık için değişiklik izleme bilgilerine ve işlemlerine erişim sağlar.

Find(Type, Object[])

Verilen birincil anahtar değerleriyle bir varlık bulur. Verilen birincil anahtar değerlerine sahip bir varlık bağlam tarafından izleniyorsa, veritabanına istek yapılmadan hemen döndürülür. Aksi halde, belirtilen birincil anahtar değerlerine sahip bir varlık için veritabanına bir sorgu yapılır ve bu varlık bulunursa, içeriğe iliştirilir ve döndürülür. Hiçbir varlık bulunmazsa null döndürülür.

Find<TEntity>(Object[])

Verilen birincil anahtar değerleriyle bir varlık bulur. Verilen birincil anahtar değerlerine sahip bir varlık bağlam tarafından izleniyorsa, veritabanına istek yapılmadan hemen döndürülür. Aksi halde, belirtilen birincil anahtar değerlerine sahip bir varlık için veritabanına bir sorgu yapılır ve bu varlık bulunursa, içeriğe iliştirilir ve döndürülür. Hiçbir varlık bulunmazsa null döndürülür.

FindAsync(Type, Object[])

Verilen birincil anahtar değerleriyle bir varlık bulur. Verilen birincil anahtar değerlerine sahip bir varlık bağlam tarafından izleniyorsa, veritabanına istek yapılmadan hemen döndürülür. Aksi halde, belirtilen birincil anahtar değerlerine sahip bir varlık için veritabanına bir sorgu yapılır ve bu varlık bulunursa, içeriğe iliştirilir ve döndürülür. Hiçbir varlık bulunmazsa null döndürülür.

FindAsync(Type, Object[], CancellationToken)

Verilen birincil anahtar değerleriyle bir varlık bulur. Verilen birincil anahtar değerlerine sahip bir varlık bağlam tarafından izleniyorsa, veritabanına istek yapılmadan hemen döndürülür. Aksi halde, belirtilen birincil anahtar değerlerine sahip bir varlık için veritabanına bir sorgu yapılır ve bu varlık bulunursa, içeriğe iliştirilir ve döndürülür. Hiçbir varlık bulunmazsa null döndürülür.

FindAsync<TEntity>(Object[])

Verilen birincil anahtar değerleriyle bir varlık bulur. Verilen birincil anahtar değerlerine sahip bir varlık bağlam tarafından izleniyorsa, veritabanına istek yapılmadan hemen döndürülür. Aksi halde, belirtilen birincil anahtar değerlerine sahip bir varlık için veritabanına bir sorgu yapılır ve bu varlık bulunursa, içeriğe iliştirilir ve döndürülür. Hiçbir varlık bulunmazsa null döndürülür.

FindAsync<TEntity>(Object[], CancellationToken)

Verilen birincil anahtar değerleriyle bir varlık bulur. Verilen birincil anahtar değerlerine sahip bir varlık bağlam tarafından izleniyorsa, veritabanına istek yapılmadan hemen döndürülür. Aksi halde, belirtilen birincil anahtar değerlerine sahip bir varlık için veritabanına bir sorgu yapılır ve bu varlık bulunursa, içeriğe iliştirilir ve döndürülür. Hiçbir varlık bulunmazsa null döndürülür.

FromExpression<TResult>(Expression<Func<IQueryable<TResult>>>)

Verili sorgu ifadesi için bir sorgulanabilir oluşturur.

OnConfiguring(DbContextOptionsBuilder)

Bu bağlam için kullanılacak veritabanını (ve diğer seçenekleri) yapılandırmak için bu yöntemi geçersiz kılın. Bu yöntem, oluşturulan bağlamın her örneği için çağrılır. Temel uygulama hiçbir şey yapmaz.

Oluşturucuya bir veya olmayan bir örneğinin DbContextOptions geçirilmiş olduğu durumlarda, IsConfigured seçeneklerin zaten ayarlanmış olup olmadığını ve içindeki mantığın bir kısmını veya tümünü atlayıp atlayabilmeniz için kullanabilirsiniz OnConfiguring(DbContextOptionsBuilder) .

OnModelCreating(ModelBuilder)

Kural tarafından bulunan modeli, türetilmiş bağlamınızda özelliklerde gösterilen varlık türlerinden daha fazla yapılandırmak için bu yöntemi geçersiz kılın DbSet<TEntity> . Elde edilen model önbelleğe alınıp türetilmiş bağlamınızın sonraki örnekleri için yeniden kullanılabilir.

Query<TQuery>()
Kullanımdan kalktı.

DbSet<TEntity>Örneklerini sorgulamak için kullanılabilecek bir oluşturur TQuery .

Remove(Object)

Çağrıldığında, belirtilen varlığı veritabanından kaldırılacak şekilde izlemeye başlar Deleted SaveChanges() .

Remove<TEntity>(TEntity)

Çağrıldığında, belirtilen varlığı veritabanından kaldırılacak şekilde izlemeye başlar Deleted SaveChanges() .

RemoveRange(IEnumerable<Object>)

Çağrıldığında, belirtilen varlığı veritabanından kaldırılacak şekilde izlemeye başlar Deleted SaveChanges() .

RemoveRange(Object[])

Çağrıldığında, belirtilen varlığı veritabanından kaldırılacak şekilde izlemeye başlar Deleted SaveChanges() .

SaveChanges()

Bu bağlamda yapılan tüm değişiklikleri veritabanına kaydeder.

Bu yöntem DetectChanges() , temel veritabanına kaydedilmeden önce varlık örneklerinde yapılan değişiklikleri bulmayı otomatik olarak çağırır. Bu, aracılığıyla devre dışı bırakılabilir AutoDetectChangesEnabled .

SaveChanges(Boolean)

Bu bağlamda yapılan tüm değişiklikleri veritabanına kaydeder.

Bu yöntem DetectChanges() , temel veritabanına kaydedilmeden önce varlık örneklerinde yapılan değişiklikleri bulmayı otomatik olarak çağırır. Bu, aracılığıyla devre dışı bırakılabilir AutoDetectChangesEnabled .

SaveChangesAsync(Boolean, CancellationToken)

Bu bağlamda yapılan tüm değişiklikleri veritabanına kaydeder.

Bu yöntem DetectChanges() , temel veritabanına kaydedilmeden önce varlık örneklerinde yapılan değişiklikleri bulmayı otomatik olarak çağırır. Bu, aracılığıyla devre dışı bırakılabilir AutoDetectChangesEnabled .

Aynı bağlam örneği üzerinde birden çok etkin işlem desteklenmez. Bu bağlamda başka bir yöntem çağrılmadan önce herhangi bir zaman uyumsuz işlemin tamamlandığından emin olmak için ' await ' kullanın.

SaveChangesAsync(CancellationToken)

Bu bağlamda yapılan tüm değişiklikleri veritabanına kaydeder.

Bu yöntem DetectChanges() , temel veritabanına kaydedilmeden önce varlık örneklerinde yapılan değişiklikleri bulmayı otomatik olarak çağırır. Bu, aracılığıyla devre dışı bırakılabilir AutoDetectChangesEnabled .

Aynı bağlam örneği üzerinde birden çok etkin işlem desteklenmez. Bu bağlamda başka bir yöntem çağrılmadan önce herhangi bir zaman uyumsuz işlemin tamamlandığından emin olmak için ' await ' kullanın.

Set<TEntity>()

DbSet<TEntity>Örneklerini sorgulamak ve kaydetmek için kullanılabilecek bir oluşturur TEntity .

Set<TEntity>(String)

DbSet<TEntity>Örneklerini sorgulamak ve kaydetmek için kullanılabilecek bir oluşturur TEntity .

Update(Object)

, Varsayılan olarak durum kullanılarak belirtilen varlıktan erişilebilen verilen varlığı ve girdileri izlemeye başlar Modified , ancak farklı bir durum kullanılacak durumlar için aşağıya bakın.

Genellikle, çağrılana kadar hiçbir veritabanı etkileşimi gerçekleştirilmez SaveChanges() .

Zaten bağlam tarafından izlenmeyen erişilebilir varlıkları bulmak için gezinti özelliklerinin özyinelemeli araması gerçekleştirilecek. Bulunan tüm varlıklar bağlam tarafından izlenir.

Bir varlığın birincil anahtar değeri ayarlandıysa, oluşturulan anahtarları olan varlık türleri için Modified durumunda izlenir. Birincil anahtar değeri ayarlanmamışsa, Added durumunda izlenir. Bu, yeni varlıkların eklene, ancak mevcut varlıkların güncelleştirileceği sağlanmasına yardımcı olur. Birincil anahtar özelliği, özellik türü için CLR varsayılandan farklı bir değere ayarlandıysa, bir varlık birincil anahtar değerinin ayarlanmış olduğu kabul edilir.

Oluşturulan anahtarlar olmadan varlık türleri için, durum kümesi her zaman olur Modified .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

Update<TEntity>(TEntity)

, Varsayılan olarak durum kullanılarak belirtilen varlıktan erişilebilen verilen varlığı ve girdileri izlemeye başlar Modified , ancak farklı bir durum kullanılacak durumlar için aşağıya bakın.

Genellikle, çağrılana kadar hiçbir veritabanı etkileşimi gerçekleştirilmez SaveChanges() .

Zaten bağlam tarafından izlenmeyen erişilebilir varlıkları bulmak için gezinti özelliklerinin özyinelemeli araması gerçekleştirilecek. Bulunan tüm varlıklar bağlam tarafından izlenir.

Bir varlığın birincil anahtar değeri ayarlandıysa, oluşturulan anahtarları olan varlık türleri için Modified durumunda izlenir. Birincil anahtar değeri ayarlanmamışsa, Added durumunda izlenir. Bu, yeni varlıkların eklene, ancak mevcut varlıkların güncelleştirileceği sağlanmasına yardımcı olur. Birincil anahtar özelliği, özellik türü için CLR varsayılandan farklı bir değere ayarlandıysa, bir varlık birincil anahtar değerinin ayarlanmış olduğu kabul edilir.

Oluşturulan anahtarlar olmadan varlık türleri için, durum kümesi her zaman olur Modified .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

UpdateRange(IEnumerable<Object>)

, Varsayılan olarak durum kullanılarak verilen varlıklardan erişilebilen verilen varlıkları ve girdileri izlemeye başlar Modified , ancak farklı bir durum kullanılacak durumlar için aşağıya bakın.

Genellikle, çağrılana kadar hiçbir veritabanı etkileşimi gerçekleştirilmez SaveChanges() .

Zaten bağlam tarafından izlenmeyen erişilebilir varlıkları bulmak için gezinti özelliklerinin özyinelemeli araması gerçekleştirilecek. Bulunan tüm varlıklar bağlam tarafından izlenir.

Bir varlığın birincil anahtar değeri ayarlandıysa, oluşturulan anahtarları olan varlık türleri için Modified durumunda izlenir. Birincil anahtar değeri ayarlanmamışsa, Added durumunda izlenir. Bu, yeni varlıkların eklene, ancak mevcut varlıkların güncelleştirileceği sağlanmasına yardımcı olur. Birincil anahtar özelliği, özellik türü için CLR varsayılandan farklı bir değere ayarlandıysa, bir varlık birincil anahtar değerinin ayarlanmış olduğu kabul edilir.

Oluşturulan anahtarlar olmadan varlık türleri için, durum kümesi her zaman olur Modified .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

UpdateRange(Object[])

, Varsayılan olarak durum kullanılarak verilen varlıklardan erişilebilen verilen varlıkları ve girdileri izlemeye başlar Modified , ancak farklı bir durum kullanılacak durumlar için aşağıya bakın.

Genellikle, çağrılana kadar hiçbir veritabanı etkileşimi gerçekleştirilmez SaveChanges() .

Zaten bağlam tarafından izlenmeyen erişilebilir varlıkları bulmak için gezinti özelliklerinin özyinelemeli araması gerçekleştirilecek. Bulunan tüm varlıklar bağlam tarafından izlenir.

Bir varlığın birincil anahtar değeri ayarlandıysa, oluşturulan anahtarları olan varlık türleri için Modified durumunda izlenir. Birincil anahtar değeri ayarlanmamışsa, Added durumunda izlenir. Bu, yeni varlıkların eklene, ancak mevcut varlıkların güncelleştirileceği sağlanmasına yardımcı olur. Birincil anahtar özelliği, özellik türü için CLR varsayılandan farklı bir değere ayarlandıysa, bir varlık birincil anahtar değerinin ayarlanmış olduğu kabul edilir.

Oluşturulan anahtarlar olmadan varlık türleri için, durum kümesi her zaman olur Modified .

StateYalnızca tek bir varlığın durumunu ayarlamak için kullanın.

Ekinlikler

SaveChangesFailed

Bir SaveChanges özel durumla yapılan çağrı veya başarısız olursa bir olay tetiklenir SaveChangesAsync .

SavedChanges

Or çağrısının sonunda tetiklenen bir olay SaveChangesSaveChangesAsync

SavingChanges

Or çağrısının başlangıcında tetiklenen bir olay SaveChangesSaveChangesAsync

Belirtik Arabirim Kullanımları

IDbContextDependencies.ChangeDetector

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextDependencies.EntityFinderFactory

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextDependencies.EntityFinderSource

Bu API Entity Framework Core altyapısını destekler ve doğrudan kodunuzdan kullanılmaya yönelik değildir. Bu API, gelecek sürümlerde değişebilir veya kaldırılabilir.

IDbContextDependencies.EntityGraphAttacher

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextDependencies.InfrastructureLogger

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextDependencies.QueryProvider

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextDependencies.QuerySource

Bu API Entity Framework Core altyapısını destekler ve doğrudan kodunuzdan kullanılmaya yönelik değildir. Bu API, gelecek sürümlerde değişebilir veya kaldırılabilir.

IDbContextDependencies.SetSource

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextDependencies.StateManager

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextDependencies.UpdateLogger

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextPoolable.ClearLease()

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextPoolable.ResetState()
IDbContextPoolable.Resurrect(DbContextPoolConfigurationSnapshot)

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextPoolable.SetLease(DbContextLease)

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextPoolable.SetPool(IDbContextPool)

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbContextPoolable.SnapshotConfiguration()

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbQueryCache.GetOrAddQuery(IDbQuerySource, Type)

Bu API Entity Framework Core altyapısını destekler ve doğrudan kodunuzdan kullanılmaya yönelik değildir. Bu API, gelecek sürümlerde değişebilir veya kaldırılabilir.

IDbSetCache.GetOrAddSet(IDbSetSource, String, Type)

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IDbSetCache.GetOrAddSet(IDbSetSource, Type)

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IInfrastructure<IServiceProvider>.Instance

IServiceProviderHizmetleri çözümlemek için kullanılan kapsamı alır.

Bu özellik, genel API yüzeyinde doğrudan gösterilmeyen hizmetlerden yararlanarak kullanılması gereken uzantı yöntemleri tarafından kullanılmak üzere tasarlanmıştır.

IResettableService.ResetState()

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

IResettableService.ResetStateAsync(CancellationToken)

Bu, Entity Framework Core altyapısını destekleyen ve genel API 'Lerle aynı uyumluluk standartlarına tabi olmayan bir iç API 'dir. Herhangi bir yayında bildirimde bulunulmadan değiştirilebilir veya kaldırılabilir. Bu kodu yalnızca, büyük bir uyarı ile doğrudan kodunuzda kullanmanız ve bunu yapmanın, yeni bir Entity Framework Core sürümüne güncelleştirme yaparken uygulama hatalarıyla sonuçlanabileceğini bilmeniz gerekir.

Uzantı Metotları

GetInfrastructure<T>(IInfrastructure<T>)

Kullanılarak gizlenen bir özellikten değeri alır IInfrastructure<T> .

Bu yöntem genellikle veritabanı sağlayıcıları (ve diğer uzantılar) tarafından kullanılır. Genellikle uygulama kodunda kullanılmaz.

IInfrastructure<T> , uygulama kodunda kullanılması amaçlanmayan ancak veritabanı sağlayıcıları tarafından yazılan genişletme yöntemlerinde kullanılabilen özellikleri gizlemek için kullanılır.

CreateProxy(DbContext, Type, Object[])

Proxy oluşturma açıksa varlık türü için bir proxy örneği oluşturur.

CreateProxy<TEntity>(DbContext, Action<TEntity>, Object[])

Proxy oluşturma açıksa varlık türü için bir proxy örneği oluşturur.

CreateProxy<TEntity>(DbContext, Object[])

Proxy oluşturma açıksa varlık türü için bir proxy örneği oluşturur.

Şunlara uygulanır