如何在实体框架代码优先迁移中设置小数精度和小数位数 - c#

我正在使用实体框架迁移,并且需要设置实体中十进制属性的精度和小数位数。我只想对此单个十进制属性(而不是所有十进制属性)执行此操作。我已经重写了OnModelCreating方法,以默认将小数设置为(18,2)。我需要此属性为(22,5)。例如

public class AdditionalCharge
{
  public decimal? Rate { get; set; }
}

在数据库中被创建为“十进制(18,2)NULL”列。我需要它成为“十进制(22,5)NULL”列。

我可以创建一个空迁移并手动编码更改,

public override void Up()
{
  AlterColumn("dbo.AdditionalCharge", "Rate", c => c.Decimal(nullable: true, precision: 22, scale: 5));
}

但是我只想更改C#声明,然后让迁移创建更改。

有没有办法做到这一点?

麦克风

参考方案

您也可以在OnModelCreating中设置列的精度:

modelBuilder.Entity<AdditionalCharge>().Property(o => o.Rate ).HasPrecision(22, 5);

但是我不知道更改是否会在迁移中进行。

使用Entity Framework Core(2.1)调用标量函数的最佳实践 - c#

我经常需要从Web应用程序(ASP.NET Core / EF Core)中调用在SQL Server上定义的标量函数。由于这些函数只是简单的辅助函数,因此我也使用了许多辅助函数,因此我使用了通用模式来调用这些标量函数-借助EF Core 2.1可用的新查询类型。由于我是EF Core的新手,所以我的问题是这种模式是否会引起问题,并且/或者是否存在调用标量函…

Entity Framework DbEntityEntry>'不包含Where的定义 - c#

此代码狙击手来自Adding CreatedDate to an entity using Entity Framework 5 Code First public override int SaveChanges() { DateTime saveTime = DateTime.Now; foreach (var entry in this.ChangeT…

使用代码优先重命名EF中的列 - c#

我在班上改名了。看起来像这样。public class clsClassForStackoverflow { [Column(TypeName = "varchar"), StringLength(150)] public string Name { get; set; } 由于结构上的更改,我不得不将其重命名。因此,我删除了该行并添加了…

Compact Framework-如何在没有默认构造函数的情况下动态创建类型? - c#

我正在使用.NET CF 3.5。我要创建的类型没有默认的构造函数,因此我想将字符串传递给重载的构造函数。我该怎么做呢?码:Assembly a = Assembly.LoadFrom("my.dll"); Type t = a.GetType("type info here"); // All ok so far, …

如何以编程方式将ListView滚动到最后一个元素-Compact Framework - c#

我正在使用Windows Mobile 6.1上的3.5 Compact Framework开发应用程序。我有一个ListView,添加项目时想自动滚动此列表。我能怎么做? 参考方案 listView.EnsureVisible(listView.Items.Count - 1);