我刚刚开始使用Code First查看数据库视图...并尝试决定是否应该使用它们。
Here Ladislav建议对表和Db-View使用NotMapped继承父(我的视图只添加子实体的总和)......但是如何使用CF迁移?我真的想用它们。
另外......导航属性适用于Db-View Entity?
有没有办法将数据直接保存到Db-View实体(及其表)?
答案 0 :(得分:8)
如果您想先使用代码和迁移,则不应使用视图。视图是数据库“逻辑”构造,代码首先不是创建数据库逻辑的方法。首先使用代码,您应该使用链接答案中提到的投影。
迁移将无法检测与您的观看次数相关的更改。您必须手动编写视图的所有迁移代码。
如果你想使用视图,你应该先做数据库(=没有迁移),然后用EDMX或代码映射映射它们。
另外......导航属性适用于Db-View Entity?
这是代码映射提供比EDMX更好支持的唯一方案。您可以在模型中定义关系,即使它在数据库中不存在(但您的数据库必须确保数据完整性)。理论上EDMX也是可行的,但它需要手动更换EDMX。
有没有办法将数据直接保存到Db-View实体(及其表)?
是的,但您的视图必须是可更新的。我不认为具有聚合值的视图是可更新的。