gpt4 book ai didi

stored-procedures - View 和存储过程 - 两者都用于数据库安全( Entity Framework 4)

转载 作者:行者123 更新时间:2023-12-04 06:46:06 25 4
gpt4 key购买 nike

总的来说,我对数据库编程有点陌生,甚至对 Entity Framework 4 也比较陌生。我正在阅读 O'Reilly Press 出版的关于这个主题的书,只是想确保我理解作者对使用 View 的看法与存储过程相结合,以增加一层安全性。她说:

If you are reluctant to expose your database tables for querying, you don't have to. ... Views come into the model as entities, but because views are read-only, Entity Framework is not able to construct commands to persist data back to the database when you call SaveChanges. ... However, these entities still participate in change tracking just like any other entities (with a caveat about EntityKeys that I'll discuss momentarily). You can then map stored procedures to these view-based entities in order to persist data when SaveChanges is called. This gives you a complete round trip to query and update data without exposing your database tables.



由于 View 是只读的,因此我在理解此存储过程映射的工作方式时遇到了一些麻烦。她是说存储过程将映射到由 View 表示的实体,插入、更新和删除过程映射到数据库,选择过程映射到 View ?

最佳答案

这是托管数据库环境中的常见要求。基本上,它是这样工作的:

  • 您从 View 中选择数据
  • 您将存储过程用于 INSERT、UPDATE、DELETE 语句

  • Entity Framework 4 很好地支持了这些要求,并且可以创建不需要对您的应用程序(及其用户)进行任何直接表访问的解决方案。这在敏感的环境和行业中可能是一个很大的优势。

    您基本上会将 View “导入”到您的 EF 模型中。然后,每个 View 都会在您的模型中创建一个实体(一个类)。对于这些实体中的每一个,您可以将 INSERT、UPDATE、DELETE 操作映射到数据库中的现有存储过程。

    Deny Table Access to the Entity Framework Without Causing a Mutiny MSDN 杂志上的文章更深入地解释了这件事的来龙​​去脉。它非常详细地解释了所有步骤。

    关于stored-procedures - View 和存储过程 - 两者都用于数据库安全( Entity Framework 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3747101/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com