如何为ADO持久化视图.. NET EDM重新创建数据库时

本文关键字:新创建 创建 数据库 EDM ADO 持久化 NET 视图 | 更新日期: 2023-09-27 18:04:57

我正在研究一个项目,该项目以代码优先的POCO对象开始,表示数据库结构。出于开发目的,当数据库发生变化时,我们使用drop并创建

提供对OData可查询端点的支持是一个新需求。所以我创建了新的ADO。. NET实体数据模型(从现有数据库生成)。

我想使用EDM仅用于检索数据从数据库视图。但据我所知,没有办法在"代码"中指定它们,因此它们将在EDM中持久化。如果我在数据库中创建一个视图,重新生成EDM,然后更改代码优先结构,则数据库将重新生成,视图将消失。

这只是一个开发阶段的问题,但却是一个大问题。

我能想到的唯一解决这个问题的方法是保留所有视图的SQL定义,并在实体框架创建数据库时执行它们。

有更好的方法吗?

如何为ADO持久化视图.. NET EDM重新创建数据库时

代码优先的方法不支持创建视图。所以你必须寻找其他选择。我建议创建迁移(自动升级在大多数情况下有效),避免使用删除/创建方法。这将保留视图,并首先保留代码的所有好处。