3

我刚刚开始使用 Code First 来查看数据库视图......并尝试决定是否应该使用它们。

在这里,Ladislav 建议对表和 Db-View 使用 NotMapped 继承父级(我的视图只添加子实体的总和)......但这如何与 CF 迁移一起使用?我真的很想使用它们。

另外...导航属性可以在 Db-View 实体上使用吗?

有没有办法将数据直接保存到 Db-View 实体(和它的表)中?

4

1 回答 1

8

如果您想首先使用代码和迁移,则不应使用视图。视图是数据库“逻辑”结构,代码优先不是创建数据库逻辑的方法。首先使用代码,您应该使用链接答案中也提到的投影。

迁移将无法检测与您的视图相关的更改。您必须手动为视图编写所有迁移代码。

如果您想使用视图,您应该首先执行数据库(= 不迁移),然后使用 EDMX 或代码映射来映射它们。

另外...导航属性可以在 Db-View 实体上使用吗?

这是代码映射提供比 EDMX 更好的支持的唯一场景。即使数据库中不存在关系,您也可以在模型中定义关系(但您的数据库必须确保数据完整性)。理论上 EDMX 也可以,但需要手动更改 EDMX。

有没有办法将数据直接保存到 Db-View 实体(和它的表)中?

是的,但您的视图必须是可更新的。我不认为具有聚合值的视图是可更新的。

于 2012-08-15T17:58:50.463 回答