我已经创建了类
public class UserAppearanceSettings
{
[Key]
public long Id { get; set; }
public string UserName { get; set; }
public string SkinName { get; set; }
public string FontName { get; set; }
public float FontSize { get; set; }
}
我的sql表脚本
CREATE TABLE [dbo].[UserAppearanceSettings](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](50) NULL,
[SkinName] [nvarchar](50) NULL,
[FontName] [nvarchar](50) NULL,
[FontSize] [float] NULL
) ON [PRIMARY]
并收到错误
' FontSize'属性' UserAppearanceSettings'无法设置为“System.Double”'值。您必须将此属性设置为类型为' System.Single'。
的非空值
我应该在sqlserver for float中使用什么数据类型
答案 0 :(得分:0)
我认为它应该是双倍的。 https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql-server-data-type-mappings
答案 1 :(得分:-1)
使用流畅的API来指示实体框架的行为与按惯例行为不同。在您重写DbContext.OnModelCreating。
时执行此操作如果你想告诉实体框架你的DbSet类中的每个浮点数应该具有SQL数据类型Float(size,d),请使用ConventionPrimitivePropertyConfiguration
public override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Treat every float as SQL FloatType(53:
modelBuilder.Properties<float>
.Configure(floatType => floatType.HasColumnType("float(53)");
base:OnModelCreating(modelBuilder);
}
如果您只想要一些float属性来使用float类型HasColumnType
modelBuilder.Entity<UserAppearanceSettings>()
.Property(setting => setting.FontSize)
.HasColumnType("float(53)");