我目前正在EF6 Code First数据库中生成一个视图。我是通过种子方法这样做的,在那里我删除了我的实体的表,然后通过SQL创建视图。
我遇到的问题是,如果视图中的列发生更改,并且我在模型中更改了它,则EF6会在更新数据库时尝试更改该表(不再存在)。
我正在寻找的是解决这个问题的方法。我的想法是我可以通过两种方式解决这个问题。
首先,通过一些“迁移前”方法,我可以删除视图并重新创建表格,以便在EF6尝试执行此操作时可以使用ALTER。我不确定这个功能是否存在,所以那里有一个挂断。
其次,告诉EF6忽略我的视图实体。这适用于创建,但是当EF6尝试将导航属性映射到我的视图时,它就会中断 这是我得到的错误:
The navigation property 'Children' is not a declared property on type 'MyView'.
Verify that it has not been explicitly excluded from the model and that it is a valid navigation property.
最好,我不必放弃使用DataAnnotations来进行EF6配置。如果我们需要转向流畅的API,那么需要重新编写相当庞大的代码库。
非常感谢任何建议!