Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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 mvc 是否可以修改在Entity Framework 5中生成原始.edmx文件的方式_Asp.net Mvc_Oracle_Entity Framework_Entity Framework 5_Odac - Fatal编程技术网

Asp.net mvc 是否可以修改在Entity Framework 5中生成原始.edmx文件的方式

Asp.net mvc 是否可以修改在Entity Framework 5中生成原始.edmx文件的方式,asp.net-mvc,oracle,entity-framework,entity-framework-5,odac,Asp.net Mvc,Oracle,Entity Framework,Entity Framework 5,Odac,我在Asp.NET5MVC应用程序中使用EntityFramework5.0DBFirst方法连接到oracle数据库。对于我为其生成EF数据模型的数据库,所有这些都可以正常工作,但我设置了3个不同(相同)的环境_PROD、_UAT和_DEV 我有配置转换设置,指向我要部署的适当环境。问题是,一旦我将连接字符串切换到它生成的不同模式(“sql用户的数据库”) ORA-00942:表或视图不存在 经过几个小时的闲逛,我终于明白了原因。查看raw.edmx代码文件后,我发现设计器正在将模式(“数据库

我在Asp.NET5MVC应用程序中使用EntityFramework5.0DBFirst方法连接到oracle数据库。对于我为其生成EF数据模型的数据库,所有这些都可以正常工作,但我设置了3个不同(相同)的环境_PROD、_UAT和_DEV

我有配置转换设置,指向我要部署的适当环境。问题是,一旦我将连接字符串切换到它生成的不同模式(“sql用户的数据库”)

ORA-00942:表或视图不存在

经过几个小时的闲逛,我终于明白了原因。查看raw.edmx代码文件后,我发现设计器正在将模式(“数据库”用于sql人员)名称应用于实体容器节点中的所有实体,请注意下面的REV_ALLOC_DEV

<EntityContainer Name="ModelStoreContainer">
  <EntitySet Name="LOG_EVENTS" EntityType="Self.LOG_EVENTS" Schema="REV_ALLOC_DEV" store:Type="Tables" />
  <EntitySet Name="PAGE_LOCK" EntityType="Self.PAGE_LOCK" Schema="REV_ALLOC_DEV" store:Type="Tables" />
  <!-- Bunch more entities... --> 
</EntityContainer>

但我相信这实际上只是一个代码优先的解决方案。

您是否设法修改了它?您是否考虑过创建不可知连接,而不是尝试修改文件? 请看看这个

在web配置文件上有3个参考: csdl—表示概念模式; msl-将.net查询转换为数据库命令; ssdl-包含有关RDBMs的信息

所有三个模式都被编译以生成模型的DLL


作者创建了两个模型(一个用于Oracle,另一个用于SQL),然后动态地从一个模型切换到另一个模型。

是的,这似乎不是我想要实现的。这是实现目标的一种有趣的方式,但我正在寻找更多的方式来修改一个模型,因为它们完全相同,更重要的是实体框架的一个缺点,即它们没有对oracle这个小的细微差别的本地支持,这使得这件事变得如此重要。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.HasDefaultSchema("MyDefaultDbSchema");
}