首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未使用Devart oracle dot connect 9将Varray数据类型映射到.net核心实体

未使用Devart oracle dot connect 9将Varray数据类型映射到.net核心实体
EN

Stack Overflow用户
提问于 2019-10-22 19:28:17
回答 1查看 99关注 0票数 0

我正在尝试使用MSEFCore 2.2.4中的Devart EFCore 9.8和Oracle dot connect试用许可证从表(Oracle db 12c)中获取数据。但是VARRAY列没有被映射。它抛出了一个异常-

代码语言:javascript
运行
复制
System.InvalidOperationException: The property 'TierInfoTemp.num_arr'
 is of type 'OracleType' which is not supported by current database 
provider. Either change the property CLR type or ignore the property
 using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.
Ignore' in 'OnModelCreating'.

我的DBContext.cs:

代码语言:javascript
运行
复制
protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<TierInfoTemp>(entity =>
            {
                OracleConnectionStringBuilder oraCSB = new OracleConnectionStringBuilder();
                oraCSB.Direct = true;
                oraCSB.Server = "xxx";
                oraCSB.Port = xxxx;
                oraCSB.Sid = "xxxx";
                oraCSB.UserId = "xxxx";
                oraCSB.Password = "xxx";
                entity.Property(e => e.num_arr).HasColumnType("VARRAY")
                .HasConversion<OracleType>();
            });
        }
        public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options)
        {
        }
        public virtual DbSet<TierInfoTemp> tier_info_temp { get; set; }

实体:

代码语言:javascript
运行
复制
public class TierInfoTemp
    {
        [Column("TIER_ID")]
        [Key]
        public int tier_id { get; set; }
        [Column("TIER_NAME")]
        public string tier_name { get; set; }
        [Column("IS_ACTIVE")]
        public int is_active { get; set; }
        [Column("REGION_ID")]
        public int region_id { get; set; }
        [Column("NUM_ARR")]
        public OracleType num_arr { get; set; }  ///VARARY Field
    }

我做错什么了吗?如果需要更多详细信息,请发表评论。

EN

回答 1

Stack Overflow用户

发布于 2019-10-26 20:23:27

Devart EF Core provider支持的Oracle数据类型列表可在https://www.devart.com/dotconnect/oracle/docs/?DataTypeMapping.html获得。

EF Core目前不支持OracleType,但您可以通过简单的ADO.NET:https://www.devart.com/dotconnect/oracle/docs/?Varray.html使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58503248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档