PropertyBuilder Sınıf

Tanım

Yapılandırmak için basit bir API sağlar IMutableProperty .

Bu sınıfın örnekleri API kullanılırken metotlardan döndürülür ModelBuilder ve uygulama kodunuzda doğrudan kullanılmak üzere tasarlanmamıştır.

public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.IMutableModel>, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder>
public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder>
public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionPropertyBuilder>
type PropertyBuilder = class
    interface IInfrastructure<IMutableModel>
    interface IInfrastructure<InternalPropertyBuilder>
type PropertyBuilder = class
    interface IInfrastructure<InternalPropertyBuilder>
type PropertyBuilder = class
    interface IInfrastructure<IConventionPropertyBuilder>
Public Class PropertyBuilder
Implements IInfrastructure(Of IMutableModel), IInfrastructure(Of InternalPropertyBuilder)
Public Class PropertyBuilder
Implements IInfrastructure(Of InternalPropertyBuilder)
Public Class PropertyBuilder
Implements IInfrastructure(Of IConventionPropertyBuilder)
Devralma
PropertyBuilder
Türetilmiş
Uygulamalar
IInfrastructure<IMutableModel> IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder> IInfrastructure<IConventionPropertyBuilder>

Açıklamalar

Daha fazla bilgi için bkz. varlık türlerini ve Ilişkilerini modelleme .

Oluşturucular

PropertyBuilder(IMutableProperty)

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.

PropertyBuilder(InternalPropertyBuilder)

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.

Özellikler

Metadata

Yapılandırılan özellik.

Yöntemler

HasAnnotation(String, Object)

Özelliği üzerine bir ek açıklama ekler veya günceller. Zaten ' de belirtilen anahtara sahip bir ek açıklama varsa, annotation değeri güncellenir.

HasConversion(Type)

Özelliği, özellik değerinin veritabanına yazılmadan önce dönüştürülmesi ve veritabanından okunurken geri dönüştürülmesi için özelliğini yapılandırır.

HasConversion(Type, Type)

Özelliği, özellik değerinin veritabanına yazılmadan önce dönüştürülmesi ve veritabanından okunurken geri dönüştürülmesi için özelliğini yapılandırır.

HasConversion(Type, ValueComparer)

Özelliği, özellik değerinin veritabanına yazılmadan önce dönüştürülmesi ve veritabanından okunurken geri dönüştürülmesi için özelliğini yapılandırır.

HasConversion(ValueConverter)

Özelliği, özellik değerinin verilen ' i kullanarak veritabanına ve veritabanından dönüştürülmesini sağlayacak şekilde yapılandırır ValueConverter .

HasConversion(ValueConverter, ValueComparer)

Özelliği, özellik değerinin verilen ' i kullanarak veritabanına ve veritabanından dönüştürülmesini sağlayacak şekilde yapılandırır ValueConverter .

HasConversion<TConversion,TComparer>()

Özelliği, özellik değerinin veritabanına yazılmadan önce dönüştürülmesi ve veritabanından okunurken geri dönüştürülmesi için özelliğini yapılandırır.

HasConversion<TConversion>()

Özelliği, özellik değerinin veritabanına yazılmadan önce dönüştürülmesi ve veritabanından okunurken geri dönüştürülmesi için özelliğini yapılandırır.

HasConversion<TConversion>(ValueComparer)

Özelliği, özellik değerinin veritabanına yazılmadan önce dönüştürülmesi ve veritabanından okunurken geri dönüştürülmesi için özelliğini yapılandırır.

HasField(String)

Bu özellik için kullanılacak yedekleme alanını ayarlar.

Yedekleme alanları, normalde aşağıda açıklandığı gibi kurala göre bulunur: http://go.microsoft.com/fwlink/?LinkId=723277 . Bu yöntem, doğru alanın kurala göre bulunamaması durumunda, yedekleme alanlarını açık bir şekilde ayarlamak için faydalıdır.

Varsayılan olarak, bir yedekleme alanı bulunursa veya belirtilmişse, yeni nesneler oluşturulduğunda, genellikle varlıklar veritabanından sorgulandığında kullanılır. Özellikler diğer tüm erişimlerde kullanılır. Bu, çağırarak değiştirilebilir UsePropertyAccessMode(PropertyAccessMode) .

HasMaxLength(Int32)

Bu özellikte depolanabilecek maksimum veri uzunluğunu yapılandırır. Maksimum uzunluk yalnızca dizi özelliklerinde ayarlanabilir ( String Özellikler dahil).

HasPrecision(Int32)

Özelliğinin duyarlığını yapılandırır.

HasPrecision(Int32, Int32)

Özelliğin hassasiyetini ve ölçeğini yapılandırır.

HasValueGenerator(Func<IProperty,IEntityType,ValueGenerator>)

ValueGeneratorBu özellik için değer oluşturmak üzere kullanmak üzere bir fabrikası yapılandırır.

Değerler,, örneğin, kullanılarak bağlama eklendiğinde oluşturulur Add<TEntity>(TEntity) . Değerler yalnızca, özelliği CLR varsayılan değeri atandığında oluşturulur ( null dizeiçin 0 , Intiçin 0 , Guid . Empty , vb.).

Bu fabrika, değer oluşturucunun tek bir örneğini oluşturmak için bir kez çağrılır ve bu özellik varlık türünün tüm örneklerinde bu özelliğin değerlerini oluşturmak için kullanılır.

Bu yöntem, özel değer üretimi ile kullanılmak üzere tasarlanmıştır. Ortak durumlar için değer oluşturma genellikle veritabanı sağlayıcısı tarafından otomatik olarak işlenir.

HasValueGenerator(Type)

ValueGeneratorBu özellik için değerler oluşturacak olan öğesini yapılandırır.

Değerler,, örneğin, kullanılarak bağlama eklendiğinde oluşturulur Add<TEntity>(TEntity) . Değerler yalnızca, özelliği CLR varsayılan değeri atandığında oluşturulur ( null dizeiçin 0 , Intiçin 0 , Guid . Empty , vb.).

Bu türün tek bir örneği oluşturulur ve bu özellik için varlık türünün tüm örneklerinde değer oluşturmak için kullanılır. Tür instantiable olmalı ve parametresiz bir oluşturucuya sahip olmalıdır.

Bu yöntem, özel değer üretimi ile kullanılmak üzere tasarlanmıştır. Ortak durumlar için değer oluşturma genellikle veritabanı sağlayıcısı tarafından otomatik olarak işlenir.

Ayar null , bu özellik için değer oluşturmayı devre dışı bırakmıyor, yalnızca bu özellik için açıkça yapılandırılmış olan oluşturucuyu temizler. Veritabanı sağlayıcısı, özellik türü için hala bir değer oluşturucuya sahip olabilir.

HasValueGenerator<TGenerator>()

ValueGeneratorBu özellik için değerler oluşturacak olan öğesini yapılandırır.

Değerler,, örneğin, kullanılarak bağlama eklendiğinde oluşturulur Add<TEntity>(TEntity) . Değerler yalnızca, özelliği CLR varsayılan değeri atandığında oluşturulur ( null dizeiçin 0 , Intiçin 0 , Guid . Empty , vb.).

Bu türün tek bir örneği oluşturulur ve bu özellik için varlık türünün tüm örneklerinde değer oluşturmak için kullanılır. Tür instantiable olmalı ve parametresiz bir oluşturucuya sahip olmalıdır.

Bu yöntem, özel değer üretimi ile kullanılmak üzere tasarlanmıştır. Ortak durumlar için değer oluşturma genellikle veritabanı sağlayıcısı tarafından otomatik olarak işlenir.

HasValueGeneratorFactory(Type)

ValueGeneratorFactory ValueGenerator Bu özellik için değer oluşturmak üzere kullanılmak üzere oluşturmak için öğesini yapılandırır.

Değerler,, örneğin, kullanılarak bağlama eklendiğinde oluşturulur Add<TEntity>(TEntity) . Değerler yalnızca, özelliği CLR varsayılan değeri atandığında oluşturulur ( null dizeiçin 0 , Intiçin 0 , Guid . Empty , vb.).

Bu türe ait tek bir örnek oluşturulur ve varlık türünün tüm örneklerde bu özellik için değer oluşturmak için kullanılır. Türün örneği başlatılabilir olması ve parametresiz bir oluşturucusu olması gerekir.

Bu yöntem, özel değer oluşturma ile kullanılmak üzere tasarlanmıştır. Yaygın durumlar için değer oluşturma genellikle veritabanı sağlayıcısı tarafından otomatik olarak ele alır.

ayarı bu özellik için değer oluşturma özelliğini devre dışı bırakmaz, yalnızca bu özellik için açıkça yapılandırılmış null oluşturucuları temizler. Veritabanı sağlayıcısı, özellik türü için bir değer oluşturucuya sahip olabilir.

HasValueGeneratorFactory<TFactory>()

Bu özellik ValueGeneratorFactory için değer oluşturmak üzere kullanmak üzere oluşturma için ValueGenerator 'yi yapılandırıyor.

Değerler, varlık kullanılarak bağlama ekleniyorsa oluşturulur, örneğin, Add<TEntity>(TEntity) . Değerler yalnızca özelliğine CLR varsayılan değeri atandığı zaman oluşturulur ( dize null için , intiçin 0 , Guid.Empty , vb.).

Bu türe ait tek bir örnek oluşturulur ve varlık türünün tüm örneklerde bu özellik için değer oluşturmak için kullanılır. Türün örneği başlatılabilir olması ve parametresiz bir oluşturucusu olması gerekir.

Bu yöntem, özel değer oluşturma ile kullanılmak üzere tasarlanmıştır. Yaygın durumlar için değer oluşturma genellikle veritabanı sağlayıcısı tarafından otomatik olarak ele alır.

ayarı bu özellik için değer oluşturma özelliğini devre dışı bırakmaz, yalnızca bu özellik için açıkça yapılandırılmış null oluşturucuları temizler. Veritabanı sağlayıcısı, özellik türü için bir değer oluşturucuya sahip olabilir.

IsConcurrencyToken(Boolean)

Bu özelliğin eşzamanlılık belirteci olarak kullanılacak olup olmadığını yapılandırıyor. Bir özellik eşzamanlılık belirteci olarak yapılandırıldığında bu varlık türünün bir örneği güncelleştirildiğinde veya silindiğinde, örnek veritabanından alındıkça değişmey olduğundan emin olmak için veritabanındaki değer SaveChanges() denetlenir. Değişti ise bir özel durum oluşturur ve değişiklikler veritabanına uygulanmaz.

IsRequired(Boolean)

Bu özelliğin atanmış bir değere mi yoksa geçerli bir değere null mi sahip olması gerektiğini yapılandırıyor. Bir özellik yalnızca atanabilir bir CLR türüne dayalı ise gerekli olmayan olarak yalıtabilirsiniz. null

IsRowVersion()

özelliğini ve olarak ValueGeneratedOnAddOrUpdate() IsConcurrencyToken(Boolean) yapılandırıyor.

Veritabanı sağlayıcıları bunu farklı bir şekilde yorumlamayı seçebilir, ancak genellikle iyimser eşzamanlılık algılama için kullanılan otomatik satır sürümü oluşturmanın bir yolunu belirtmek için kullanılır.

IsUnicode(Boolean)

Özelliğin Unicode karakterlerini kalıcı olarak kalıcı olarak kabul edip ede eyleye sahip olup olmadığını yapılandırıyor. Yalnızca özelliklere göre String ayarlanabilirsiniz.

UsePropertyAccessMode(PropertyAccessMode)

Bu özellik PropertyAccessMode için kullanmak üzere ayarlar.

Varsayılan olarak, bir kural tarafından bulunursa veya belirtilmişse, genellikle varlıklar veritabanından sorgulanan yeni nesneler oluşturulurken backing alanı kullanılır. Özellikler diğer tüm erişimler için kullanılır. Witll, bu yöntemi çağırarak bu özellik için bu davranışı enum'da açıklandığı PropertyAccessMode gibi değiştirir.

Bu özellik için bu yöntemin çağrılarak varlık türü veya modelde ayarlanmış herhangi bir erişim modu.

UsePropertyAccessMode(PropertyAccessMode)

Bu özellik PropertyAccessMode için kullanmak üzere ayarlar.

Varsayılan olarak, bir kural tarafından bulunursa veya belirtilmişse, genellikle varlıklar veritabanından sorgulanan yeni nesneler oluşturulurken backing alanı kullanılır. Özellikler diğer tüm erişimler için kullanılır. Bu yöntemin çağrılsı, enum'da açıklandığı gibi bu özelliğin PropertyAccessMode davranışını değiştirir.

Bu yöntemin çağrılarak varlık türü veya modelde ayarlanmış herhangi bir erişim modu için bu özellik geçersiz kılınıyor.

ValueGeneratedNever()

Bir özelliği, bu varlık türünün bir örneği kaydedilebilirken veritabanı tarafından hiçbir zaman değer üretiyecek şekilde yapılandırıyor.

ValueGeneratedOnAdd()

Null olmayan, geçici olmayan bir değer ayarlanmadıkça, bir özelliği yalnızca yeni bir varlık kaydedilirken bir değerin oluşturulacak şekilde yapılandırıyor. Bu durumda, bunun yerine ayarlanmış değer kaydedilir. Değer bir istemci tarafı değer oluşturucu tarafından veya varlığı kaydetmenin bir parçası olarak veritabanı tarafından oluşturulmuş olabilir.

ValueGeneratedOnAddOrUpdate()

Bir özelliği yeni veya var olan bir varlık kaydederek bir değer oluşturularak yapılandırıyor.

ValueGeneratedOnUpdate()

Bir özelliği, var olan bir varlık kaydediken oluşturulan bir değere sahip olacak şekilde yapılandırıyor.

ValueGeneratedOnUpdateSometimes()

Bir özelliği, var olan bir varlığı kaydederek belirli koşullar altında oluşturulan bir değere sahip olacak şekilde yapılandırıyor.

Belirtik Arabirim Kullanımları

IInfrastructure<IConventionPropertyBuilder>.Instance

Özelliğini yapılandırmak için kullanılan iç oluşturucu.

IInfrastructure<IMutableModel>.Instance

Özelliğin ait olduğu model.

IInfrastructure<InternalPropertyBuilder>.Instance

Özelliğini yapılandırmak için kullanılan iç oluşturucu.

Uzantı Metotları

IsETagConcurrency(PropertyBuilder)

Bu özelliği etag eşzamanlılık belirteci olacak şekilde yapılandırıyor.

ToJsonProperty(PropertyBuilder, String)

Azure depolamayı hedeflerken özelliğin eşlenen özellik adını Cosmos.

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.

HasColumnName(PropertyBuilder, String)

İlişkisel bir veritabanını hedeflerken, özelliğin eşlendiği sütunu yapılandırır.

HasColumnOrder(PropertyBuilder, Nullable<Int32>)

Özelliğin eşlenmiş olduğu sütunun sıralamalarını yapılandırıyor.

HasColumnType(PropertyBuilder, String)

bir ilişkisel veritabanını hedeflerken özelliğin eşle olduğu sütunun veri türünü yapılandırıyor. Duyarlık, ölçek, uzunluk vb. dahil olmak üzere tam tür adı olmalıdır.

HasComment(PropertyBuilder, String)

Sütuna uygulanacak bir açıklama yapılandırıyor

HasComputedColumnSql(PropertyBuilder)

İlişkisel veritabanını hedeflerken özelliğini hesaplanan sütuna eşleyebilecek şekilde yapılandırıyor.

Bağımsız değişken olmadan çağrılmışsa, bu yöntem EF'ye bir sütunun hesaplandı olduğunu, hesaplama için kullanılan gerçek SQL belirterek hesaplamaya gerek kalmadan olduğunu söyler. Bu, EF'yi mevcut bir veritabanına eşlerken yararlı olabilir.

HasComputedColumnSql(PropertyBuilder, String)

İlişkisel veritabanını hedeflerken özelliğini hesaplanan sütuna eşleyebilecek şekilde yapılandırıyor.

HasComputedColumnSql(PropertyBuilder, String, Nullable<Boolean>)

İlişkisel veritabanını hedeflerken özelliğini hesaplanan sütuna eşleyebilecek şekilde yapılandırıyor.

HasDefaultValue(PropertyBuilder)

bir ilişkisel veritabanını hedeflerken özelliğin eşle olduğu sütun için varsayılan değeri yapılandırıyor.

Bağımsız değişken olmadan çağrılsa bu yöntem EF'ye bir sütunun tam olarak ne olduğunu belirtmeye gerek kalmadan bir tür varsayılan değer kısıtlamasına sahip olduğunu söyler. Bu, EF'yi mevcut bir veritabanına eşlerken yararlı olabilir.

HasDefaultValue(PropertyBuilder, Object)

İlişkisel bir veritabanını hedeflerken, özelliğin eşlendiği sütun için varsayılan değeri yapılandırır.

HasDefaultValueSql(PropertyBuilder)

İlişkisel bir veritabanını hedeflerken, özelliğin eşlendiği sütun için varsayılan değer ifadesini yapılandırır.

Bağımsız değişken olmadan çağrıldığında, bu yöntem, tam olarak ne olduğunu belirtmek zorunda kalmadan bir sütunun bir sıralama için varsayılan değer kısıtlamasına sahip olduğunu söyler. Bu, EF 'i var olan bir veritabanıyla eşlerken yararlı olabilir.

HasDefaultValueSql(PropertyBuilder, String)

İlişkisel bir veritabanını hedeflerken, özelliğin eşlendiği sütun için varsayılan değer ifadesini yapılandırır.

IsFixedLength(PropertyBuilder, Boolean)

Özelliği, dizeler gibi yalnızca sabit uzunluklu verileri saklayabilecek şekilde yapılandırır.

UseCollation(PropertyBuilder, String)

Özelliği verilen harmanlamayı kullanacak şekilde yapılandırır. Veritabanı sütunu, belirtilen harmanlama ile oluşturulur ve tüm harmanlama duyarlı işlemlerde örtülü olarak kullanılır.

ForSqliteHasDimension(PropertyBuilder, Ordinates)

SQLite ' i hedeflerken, özelliğin eşlendiği sütunun boyutunu yapılandırır.

ForSqliteHasDimension(PropertyBuilder, Ordinates)
Kullanımdan kalktı.

SQLite ' i hedeflerken, özelliğin eşlendiği sütunun boyutunu yapılandırır.

HasGeometricDimension(PropertyBuilder, Ordinates)

SQLite ' i hedeflerken, özelliğin eşlendiği sütunun boyutunu yapılandırır.

ForSqliteHasColumnName(PropertyBuilder, String)

Özelliğin SQLite'ı hedeflerken eşleyiştir olduğu sütunu yapılandırıyor.

ForSqliteHasColumnType(PropertyBuilder, String)

Özelliğin SQLite'ı hedeflerken eşleyiştir olduğu sütunun veri türünü yapılandırıyor.

ForSqliteHasDefaultValue(PropertyBuilder, Object)

Özelliğin SQLite'ı hedeflerken eşle olduğu sütun için varsayılan değeri yapılandırıyor.

ForSqliteHasDefaultValueSql(PropertyBuilder, String)

Özelliğin SQLite'ı hedeflerken eşleyiştir olduğu sütun için varsayılan değer ifadesini yapılandıran.

ForSqliteHasSrid(PropertyBuilder, Int32)
Kullanımdan kalktı.

Özelliğin SQLite'ı hedeflerken eşleyiştir olduğu sütunun SRID'lerini yapılandırır.

HasSrid(PropertyBuilder, Int32)

Özelliğin SQLite'ı hedeflerken eşleyiştir olduğu sütunun SRID'lerini yapılandırır.

ForSqlServerHasColumnName(PropertyBuilder, String)

Özelliğin, özelliğin hedeflene eşleye SQL Server.

ForSqlServerHasColumnType(PropertyBuilder, String)

Özelliğin, özelliğin hedeflene eşlene sütunun veri türünü SQL Server. Duyarlık, ölçek, uzunluk vb. dahil olmak üzere tam tür adı olmalıdır.

ForSqlServerHasComputedColumnSql(PropertyBuilder, String)

Özelliği, veri depolamayı hedeflerken hesaplanan sütuna eş SQL Server.

ForSqlServerHasDefaultValue(PropertyBuilder, Object)

Özelliğin, özelliğin hedeflene eşlene sütun için varsayılan değeri SQL Server.

ForSqlServerHasDefaultValueSql(PropertyBuilder, String)

Özelliğin SQL Server'yi hedeflerken özelliğin eşlemektedir sütunu için varsayılan değer SQL Server.

ForSqlServerUseSequenceHiLo(PropertyBuilder, String, String)
Kullanımdan kalktı.

Anahtar özelliğini, yeni varlıklar için değer oluşturmak üzere dizi tabanlı bir hi-lo deseni kullanmak üzere yapılandırarak SQL Server. Bu yöntem, özelliğini olarak OnAdd ayarlar.

IsSparse(PropertyBuilder, Boolean)

Özelliğin sütununu hedeflerken seyrek olarak oluşturulıp oluşturulma SQL Server.

UseHiLo(PropertyBuilder, String, String)

Anahtar özelliğini, yeni varlıklar için değer oluşturmak üzere dizi tabanlı bir hi-lo deseni kullanmak üzere yapılandırarak SQL Server. Bu yöntem, özelliğini olarak OnAdd ayarlar.

UseIdentityColumn(PropertyBuilder, Int32, Int32)

Yeni varlıkları hedeflerken yeni varlıklar için değer oluşturmak üzere SQL Server IDENTITY özelliğini kullanmak üzere anahtar özelliğini SQL Server. Bu yöntem, özelliğini olarak OnAdd ayarlar.

UseIdentityColumn(PropertyBuilder, Int64, Int32)

Yeni varlıkları hedeflerken yeni varlıklar için değer oluşturmak üzere SQL Server IDENTITY özelliğini kullanmak üzere anahtar özelliğini SQL Server. Bu yöntem, özelliğini olarak OnAdd ayarlar.

UseSqlServerIdentityColumn(PropertyBuilder)

SQL Server ıdentity özelliğini kullanarak yeni varlıkların değerlerini oluşturmak için, SQL Server hedeflerken, anahtar özelliğini yapılandırır. Bu yöntem, özelliğini olarak ayarlar OnAdd .

UseSqlServerIdentityColumn(PropertyBuilder, Int32, Int32)
Kullanımdan kalktı.

SQL Server ıdentity özelliğini kullanarak yeni varlıkların değerlerini oluşturmak için, SQL Server hedeflerken, anahtar özelliğini yapılandırır. Bu yöntem, özelliğini olarak ayarlar OnAdd .

Şunlara uygulanır