在大多数 ASP.NET 应用程序中,您可以通过在运行时修改连接字符串来更改数据库存储。即,我可以通过简单地更改连接字符串中“数据库”字段的值来从使用测试数据库更改为生产数据库
我正在尝试使用实体框架更改架构(但不一定是数据库本身),但没有成功。
我看到的问题是 edmx xml 文件中的 SSDL 内容存储schema对于每个实体集。
见下文
<EntitySet
Name="task"
EntityType="hardModel.Store.task"
store:Type="Tables"
Schema="test" />
现在我已将模式属性值从测试更改为“prod”并且它有效。
但这似乎并不是一个好的解决方案。
- 我需要更新evert实体集以及存储过程(我有+50个表)
- 我只能在编译时执行此操作?
- 如果我随后尝试更新实体模型,由于 EF 无法识别该表已存在于 edm 中,因此正在读取已存在的实体模型。
有什么想法吗?
我也遇到了同样的问题,这真的很烦人,因为这是微软真正错失良机的案例之一。使用 EF 的一半原因是支持其他数据库,但除非您先编写代码,否则并不能真正解决问题。
在 MS SQL 中,更改架构没有什么意义,因为架构是表标识的一部分。对于其他类型的数据库,模式很大程度上不是数据库标识的一部分,仅确定数据库的位置。连接到 Oracle 并更改数据库和更改架构本质上是同义词。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)