ef codefirst字段类型与sqlserver表字段类型对应概要

26 篇文章 4 订阅
13 篇文章 0 订阅

1、sqlserver中nvarchar(50),对应EF中:

[MaxLength(50, ErrorMessage = "最大长度为{1}")]
public string Name { get; set; }

2、sqlserver中char(10),对应EF中:

[MaxLength(10)]
[Column(TypeName = "CHAR")]
public string Name { get; set; }

3、sqlserver中smallint,对应EF中:

public short ID { set; get; }

4、sqlserver中tinyint,对应EF中:

public byte IsDelete { get; set; }

5、sqlserver中text,对应EF中:

[Column(TypeName = "text")]
public string Content { set; get; }

6、sqlserver中Date(sqlserver2008版本以上才有),对应EF中:

[Column(TypeName = "smalldatetime")]//年月日时分秒
public DateTime Birthday{ get; set; }

7.sqlserver中decimal,对应EF中

[Column(TypeName = "decimal(18, 2)")]
public decimal Money { get; set; }

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
EF Core中,您可以使用`HasConversion`方法将数据库字段类型全部改为string。以下是示例代码: ```csharp protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); //获取所有的属性并将它们的类型转换为string foreach (var entityType in modelBuilder.Model.GetEntityTypes()) { foreach (var property in entityType.GetProperties()) { if (property.ClrType == typeof(decimal)) { // 将decimal类型转换为string类型 property.SetColumnType("varchar(255)"); property.SetConversion<decimal?, string>( v => v.ToString(), v => decimal.Parse(v)); } else if (property.ClrType == typeof(DateTime)) { // 将DateTime类型转换为string类型 property.SetColumnType("varchar(255)"); property.SetConversion<DateTime?, string>( v => v.ToString(), v => DateTime.Parse(v)); } else if (property.ClrType == typeof(Guid)) { // 将Guid类型转换为string类型 property.SetColumnType("varchar(255)"); property.SetConversion<Guid?, string>( v => v.ToString(), v => Guid.Parse(v)); } else if (property.ClrType == typeof(TimeSpan)) { // 将TimeSpan类型转换为string类型 property.SetColumnType("varchar(255)"); property.SetConversion<TimeSpan?, string>( v => v.ToString(), v => TimeSpan.Parse(v)); } else if(property.ClrType == typeof(byte[])) { // 将byte[]类型转换为string类型 property.SetColumnType("varchar(255)"); property.SetConversion<byte[], string>( v => Convert.ToBase64String(v), v => Convert.FromBase64String(v)); } else { // 将其他类型转换为string类型 property.SetColumnType("varchar(255)"); property.SetConversion<string, string>( v => v, v => v); } } } } ``` 在上面的代码中,我们遍历了所有的实体类型和属性,并将它们的类型转换为字符串类型。对于不同的CLR类型,我们使用不同的转换器进行转换。例如,对于`decimal`类型,我们使用`decimal`和`string`之间的转换器,将其转换为字符串类型。对于其他类型,我们将它们直接转换为字符串类型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香煎三文鱼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值