EF7 (Beta 4) için ondalık kesinlik ayarını şanssız olarak belirlemeye çalışıyorum.Entity Framework 7 Model oluşturucu için ondalık kesinlik ayarla
ben böyle bir şey yapmak bekliyordum: Bu kullanılabilir olması için görünmüyor
modelBuilder.Entity<SomeClass>().Property(p => p.DecimalProperty).Precision(10, 6)
ama GitHub'dan içinde depoda aşağıdaki sınıf bulabildim:
RelationalTypeMapping sınıflarını veya onlarla yöntem imzalarını kullanma örnekleri yoktur. Belki bu sadece bilgi almak için eşleme isminin bir parçası olarak kullanılır? ,
modelBuilder.Entity<SomeClass>().Property(p => p.DecimalProperty).ForRelational().ColumnType()
veya
modelBuilder.Entity<SomeClass>().Property(p => p.DecimalProperty).ForSqlServer().ColumnType()
Bunlar bir dize alır sadece henüz uygulanmadı bu işlevselliği ya da sadece aramıyorum:
Bunun olmasını bekliyoruz bir başka yer de şudur Doğru yerde?
Düzenleme: Sadece bu daha dışarı inşa edilene kadar bu dize ı tercih ediyorum gibi olsa bazı açıklama elde sakıncası olmaz yine .ColumnType ("ondalık (10,6)") çözümü türü için muhtemelen fark değil bu
Düzenleme için dizeleri kullanmak: açıklama sonra bricelam I dize kullanarak önlemek için şimdilik kullanmak için aşağıdaki uzantıyı oluştururken sona erdi ve ben onların yaklaşımı basitliği takdir:
public static RelationalPropertyBuilder DecimalPrecision(this RelationalPropertyBuilder propertyBuilder, int precision, int scale)
{
return propertyBuilder.ColumnType($"decimal({precision},{scale})");
}
Kullanım örneği:
modelBuilder.Entity<SomeClass>().Property(p => p.DecimalProperty).ForRelational().DecimalPrecision(10,6);
Düzenleme: RC1
için yapma modifikasyon Ben henüz bu test etmedim, ama sadece bu muhtemelen RC1 ile nasıl görüneceğini 2 numuneleri aşağıdaki birlikte attı
public static PropertyBuilder DecimalPrecision(this PropertyBuilder propertyBuilder, string precision, string scale)
{
return propertyBuilder.HasColumnType($"decimal({precision},{scale})");
}
public static PropertyBuilder SqlDecimalPrecision(this PropertyBuilder propertyBuilder, string precision, string scale)
{
return propertyBuilder.ForSqlServerHasColumnType($"decimal({precision},{scale})");
}
Henüz denemediğimden bu yana "HasColumnType" veya "ForSqlServerHasColumnType" arasındaki doğru kullanımın hangisi olacağından emin değilim, ancak umarım bu doğru olanı işaret eder.
Tüm ondalık özelliklerim aynı hassaslığa sahip olduğundan, bunları tek bir satırda gerçekleştirmenin herhangi bir yolu var mı? Bunu EF6: 'modelBuilder.Properties() .Configure (x => x.HasPrecision (18, 6)); –
GregoryHouseMD
@reala valoro, RC1 değişikliklerini yansıtacak ayrıntıları güncelledim –