Oracle中使用什么数据类型来存储长字符串?

김세림*_*김세림 5 c# oracle entity-framework-core asp.net-core

我正在使用.net core 进行开发。数据库采用Oracle。varchar2的最大值是4000字节,那么上面的数据用什么数据类型来存储呢?

我使用 clob 创建了一个列并将其映射到 .net。

模型

public string CONTENTS { get; set; }
Run Code Online (Sandbox Code Playgroud)

代码

try
{
    var content= _mapper.Map<T_CONTENT>(post);

    _dbcontext.T_CONTENT.Add(content);
    _dbcontext.SaveChanges();
    transaction.Commit();

    return content.ID;
}
catch (Exception e)
{
    transaction.Rollback();
    return null;
}

public class contentDbContext : DbContext
{
    public contentDbContext(DbContextOptions options)    : base(options) { }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
    }

    public DbSet<T_CONTENT> T_CONTENT{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我保存数据时,出现以下错误。错误消息:ORA-01460:请求的转换未实现或不合理

小智 4

在映射中,您可以尝试将 .HasColumnType("CLOB") 与 modelBinder 一起使用

例子:

public class ContentDbContext : DbContext
{
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<<EntityName>>()
            .Property(a => a.<CoulmnName>).HasColumnType("CLOB");
    }
}
Run Code Online (Sandbox Code Playgroud)