【问题标题】:EF Code First and Database ViewsEF 代码优先和数据库视图
【发布时间】:2012-08-12 01:09:26
【问题描述】:

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

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

另外...导航属性是否适用于 Db-View 实体?

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

【问题讨论】:

    标签: entity-framework ef-code-first


    【解决方案1】:

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

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

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

    另外...导航属性是否适用于 Db-View 实体?

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 2019-10-23
      • 2012-04-27
      • 2018-11-20
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多