Asp.net mvc 是否可以修改在Entity Framework 5中生成原始.edmx文件的方式
我在Asp.NET5MVC应用程序中使用EntityFramework5.0DBFirst方法连接到oracle数据库。对于我为其生成EF数据模型的数据库,所有这些都可以正常工作,但我设置了3个不同(相同)的环境_PROD、_UAT和_DEV 我有配置转换设置,指向我要部署的适当环境。问题是,一旦我将连接字符串切换到它生成的不同模式(“sql用户的数据库”)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代码文件后,我发现设计器正在将模式(“数据库
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");
}