EF4.3のコードファーストアプローチで列にdecimal(16, 3)を設定する[重複]質問する

EF4.3のコードファーストアプローチで列にdecimal(16, 3)を設定する[重複]質問する

これどうやってするの :

private decimal _SnachCount;
[Required]
[DataType("decimal(16 ,3)")]
public decimal SnachCount
{
    get { return _SnachCount; }
    set { _SnachCount = value; }
}

private decimal _MinimumStock;
[Required]
[DataType("decimal(16 ,3)")]
public decimal MinimumStock
{
    get { return _MinimumStock; }
    set { _MinimumStock = value; }
}

private decimal _MaximumStock;
[Required]
[DataType("decimal(16 ,3)")]
public decimal MaximumStock
{
    get { return _MaximumStock; }
    set { _MaximumStock = value; }
}

モデルのこの部分でデータベースを生成した後、これらの 3 つの列の型は 10 進数 (18,2) になっています。なぜでしょうか。このコード エラーは何ですか。どうすれば解決できますか。

ベストアンサー1

属性DataTypeは検証属性です。ModelBuilder を使用してこれを実行する必要があります。

public class MyContext : DbContext
{
    public DbSet<MyClass> MyClass;
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MyClass>().Property(x => x.SnachCount).HasPrecision(16, 3);
        modelBuilder.Entity<MyClass>().Property(x => x.MinimumStock).HasPrecision(16, 3);
        modelBuilder.Entity<MyClass>().Property(x => x.MaximumStock).HasPrecision(16, 3);
    }
}

おすすめ記事