Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Oracle托管DataAccess EF6自定义edm映射未应用_Asp.net_Oracle_Entity Framework 6 - Fatal编程技术网

Asp.net Oracle托管DataAccess EF6自定义edm映射未应用

Asp.net Oracle托管DataAccess EF6自定义edm映射未应用,asp.net,oracle,entity-framework-6,Asp.net,Oracle,Entity Framework 6,我们的oracle数据库中有很多number(5,0)的实例,oracle提供程序默认为Int16。这会导致一个问题,因为我们可以有一个大于int16范围内允许的相同值。Oracle建议使用自定义映射覆盖edm映射(请参阅文档:) 我面临的问题是,即使在我的asp.net mvc项目的web.config中有这些自定义映射,覆盖也不会应用。我还创建了一个全新的控制台应用程序来测试这一点,但也没有运气 有人知道如何使它工作或有更好的解决方案吗 我可能应该添加这些信息, VS 2015 EF6 O

我们的oracle数据库中有很多number(5,0)的实例,oracle提供程序默认为Int16。这会导致一个问题,因为我们可以有一个大于int16范围内允许的相同值。Oracle建议使用自定义映射覆盖edm映射(请参阅文档:)

我面临的问题是,即使在我的asp.net mvc项目的web.config中有这些自定义映射,覆盖也不会应用。我还创建了一个全新的控制台应用程序来测试这一点,但也没有运气

有人知道如何使它工作或有更好的解决方案吗

我可能应该添加这些信息,
  • VS 2015 EF6 Oracle Managed Data Acesss最新版本,来自NuGet
  • 我知道文档中说可以在表映射中手动编辑类型 但当你试图改变它们时,它与emd模型和 生成一个错误
  • 手动编辑要编辑的xml的变通方法 移除精度在短期内是好的,但每次你都必须这样做 从数据库更新它会覆盖更改。这是一件家务事,因为我 某些表格中有40多个条目需要编辑
(以下是web.config/app.config中的条目)



我不确定这对您的情况是否有帮助,但首先使用实体框架代码,您可以使用Fluent API配置属性。默认代码优先约定为具有相同名称、顺序和数据类型的属性创建列。您可以覆盖此约定,如下所示

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
        //Configure Column
        modelBuilder.Entity<Student>()
                    .Property(p => p.DateOfBirth)
                    .HasColumnName("DoB")
                    .HasColumnOrder(3)
                    .HasColumnType("datetime2");
  }
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
//配置列
modelBuilder.Entity()
.Property(p=>p.DateOfBirth)
.HasColumnName(“DoB”)
.1.1订单(3)
.HasColumnType(“日期时间2”);
}
有关Fluent API的其他资源:


您是否打算永远坚持EF 6版本?如果不是,因为edmx designer在7版本中被删除了,也许您的团队应该开始习惯于自己处理映射,而不是让设计师直接完成工作。

很高兴我能提供帮助。
  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
        //Configure Column
        modelBuilder.Entity<Student>()
                    .Property(p => p.DateOfBirth)
                    .HasColumnName("DoB")
                    .HasColumnOrder(3)
                    .HasColumnType("datetime2");
  }