我正在开发一个项目,该项目以代码优先的POCO对象开始,代表数据库结构。出于开发目的,我们在更改数据库时使用 drop并创建。
为OData可查询端点提供支持的新要求。所以我创建了新的ADO.NET实体数据模型(从现有数据库生成)。
我想仅使用EDM从数据库视图中检索数据。 但据我所知,没有办法如何在“代码”中指定它们,因此它们将被保留在EDM中。如果我在数据库中创建一个视图,重新生成EDM然后更改代码优先结构,则会重新生成DB并且视图已经消失。
这只是一个问题,仅适用于开发阶段,但却是一个大问题。
我能想到的唯一解决这个问题的方法是保留所有视图的SQL定义,并在实体框架创建数据库时执行它们。
有更好的方法吗?
答案 0 :(得分:1)
代码优先方法不支持创建视图。所以你必须寻找其他选择。我建议创建迁移(在大多数情况下自动升级工作)并避免使用drop / create方法。这将保留视图并保持代码的所有好处。