如何在重新创建数据库时保留ADO.NET EDM的视图

时间:2015-07-28 08:03:03

标签: c# entity-framework ado.net ef-code-first

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

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

我想仅使用EDM从数据库视图中检索数据。 但据我所知,没有办法如何在“代码”中指定它们,因此它们将被保留在EDM中。如果我在数据库中创建一个视图,重新生成EDM然后更改代码优先结构,则会重新生成DB并且视图已经消失。

这只是一个问题,仅适用于开发阶段,但却是一个大问题。

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

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

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