gpt4 book ai didi

asp.net - 为什么 Entity Framework 在使用 ADO.NET 实体数据模型映射数据库表时会自动使用 ObjectContext 而不是 DbContext

转载 作者:行者123 更新时间:2023-12-03 23:23:33 25 4
gpt4 key购买 nike

我首先遵循数据库方法;我已经在我的 SQL Server 2008 数据库中创建了表,然后我使用 ADO.NET 实体数据模型将这些表映射到 Entity Framework 类。但是当我打开 Designer.cs 文件时,我在自动创建的类定义中发现了以下代码:

public partial class PortalEntities : ObjectContext

所以我有以下三个问题让我感到困惑:
  • 为什么我的 PortalEntities类派生自 ObjectContext而不是 DbContext正如我所期待的那样?
  • ObjectContext之间有什么大的区别吗? & DbContext ,或者它们主要相同并提供相同的功能
  • 当我尝试编写类似于以下代码的内容时:
    Student student = db.Students.Find(id);

  • 我发现我不能使用 .Find()我以前使用 DbContext 的方法,这是否意味着 ObjectContext & DbContext我可以使用不同的方法吗?

    BR

    最佳答案

    DbContextObjectContext 的包装器这简化了我们最常做的事情的界面。

    如果您有 DbContext您仍然可以访问 ObjectContext((IObjectContextAdapter)dbContext).ObjectContext;
    如果您想使用 DbContext而不是 ObjectContext首先使用数据库时,您可以切换用于生成代码的模板。您可以通过右键单击您的 EDMX 并选择“添加代码生成项”来完成此操作。然后您可以选择 DbContext 模板。

    Here is an example的整个过程。

    关于asp.net - 为什么 Entity Framework 在使用 ADO.NET 实体数据模型映射数据库表时会自动使用 ObjectContext 而不是 DbContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9020809/

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