c# - Entity Framework 术语中的 "Model"和 "Context"有什么区别?

标签 c# entity-framework

Entity Framework 术语中的“模型”和“上下文”有什么区别?

我在应用程序中使用 Entity Framework 数据库优先方法。这些术语在我阅读有关 EF 实现策略的不同论坛和文章时多次出现。我似乎无法弄清楚这两者有何不同(甚至不仅仅是 Entity Framework ,而是一般的软件开发)。人们使用这些词就好像它们是不同的,但后来有些人似乎可以互换使用这些词。

最佳答案

上下文

这很简单。上下文是 DbContext 或旧的 ObjectContext 类,它们是 Entity Framework 数据访问层的核心。它通过强类型实体集提供透明的数据库访问,跟踪和保存更改,管理数据库事务和连接,并包含许多实用方法来促进各种数据访问任务(尤其是 DbContext) .

型号

这可以是两个(或三个)事物。

  • 数据模型或存储模型。这是 EF 数据访问层底层数据库的关系模型。
  • 概念模型或类模型。这是代表数据库的 .Net 类模型。该模型可以由 EF(数据库优先)生成,也可以是现有的类模型(代码优先)。概念模型和存储模型通过映射链接,因此 EF 知道如何从数据库记录填充 .Net 类,以及如何将 .Net 类保存到数据库。
  • 有些人将概念模型中的类称为“模型”。这没有错,但我更喜欢使用名称 entities为此。

所以上下文模型是两个完全不同的东西。您可能会说上下文是两种不同类型模型之间的中间人。

关于c# - Entity Framework 术语中的 "Model"和 "Context"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18642203/

相关文章:

c# - IDataReader 和 "HasColumn",最佳方法?

c# - 使用加速度计环顾四周 - Unity3D C#

c# - 如何使用 SignalR Hubs 从服务器向客户端发送消息

c# - 自动将一些 Where 子句添加到 Linq 表达式树

entity-framework - 是否可以自动创建 .edmx 文件?

c# - 递归与迭代速度的不一致

c# - 如何将纯文本json数据转成字符串?

java - 有没有办法将相同的 hibernate 实体映射到不同方案中的多个表

.net - Entity Framework 中的固定长度字符串?

c# - Entity Framework Core 单个对象而不是列表