【问题标题】:What's an entity in entity framework?实体框架中的实体是什么?
【发布时间】:2013-05-09 12:29:50
【问题描述】:

在我学习实体框架的教程中,他们不断提到实体。我经常看到它在数据库上下文类中被用作dbsets<> 的同义词,但它的字面意思是什么?

我已经知道实体框架是如何工作的,只是不明白这个词的意思。

【问题讨论】:

    标签: entity-framework entity terminology


    【解决方案1】:

    在实体框架中,实体在很大程度上等同于概念模型(或类模型中的,它映射到商店模型)。

    在领域模型术语中,实体是

    不是由其属性定义的对象,而是由连续性及其标识定义的对象。

    (来源:Wikipedia

    对于“具有身份的对象”来说,这是相当多的,而不是 值对象,例如 DateTime 或(可能)AddressCustomer 是一个实体,因为它由他的“谁”标识。两个同名客户仍然是两个客户。

    因此,实体可以松散地定义为业务领域所涉及的“事物”。客户/用户和系统设计师/开发人员都用通用语言谈论的事情。而在 EF 中,这些东西由类表示。

    所以它不是DbSetDbSet 是一个提供实体对象的存储库。

    我经常看到人们将实体称为模型。我不知道这个术语的由来(它似乎经常发生而并非巧合),但我认为它不正确。这主要是令人困惑的。 EF 中的 model 要么是商店模型,要么是概念模型,因此它是实体的集合。模型也可以是包含任意数量实体的任意数量属性的视图模型。

    【讨论】:

    • 什么是域模型?我知道模型就像一个类,它可以初始化包含在整个程序中使用的数据的对象,但是关于“域”的全部内容是什么?我在 MVC 文章中多次看到这个词。
    • 它被广泛用作应用程序业务逻辑核心所在的面向对象的类模型。当这些类真正实现行为并且它们不是贫血类时,它可能与实体框架类模型同义。
    【解决方案2】:

    让我们以 Person 对象为例,假设 Person 数据被发布到数据库并在层级中移动

    当它在我的 UI 中时,我称它为 Person Model 或 ViewModel。

    当它在我的业务层中时,我将其称为个人业务对象。

    当它在我的数据层中时,我称它为 Person Entity。

    相同的数据正在移动到不同层的不同对象中。实体只是在数据访问层中保存个人数据的对象的名称......

    【讨论】:

      【解决方案3】:

      实体只是表示某种形式的关系数据的对象。这通常用于表示关系数据库,但不限于此。我建议查看 http://msdn.microsoft.com/en-us/data/aa937709 以简要了解实体框架的工作原理。

      【讨论】:

      • 感谢您的回复。在那个网站上,他们也使用了实体这个词,而没有告诉我它们到底是什么。我不明白你的解释:\ 我的 DbContext 类是一个实体吗?还是实体中的数据库集?
      • Entity 只是您正在使用的关系对象的占位符名称。如果您从 SQL 服务器中提取数据,则实体是您从中提取的表或视图。但是,这是抽象的,因为实体数据模型(通常是具有与所讨论实体的输出相同的字段的类)是您在应用程序中实际编码的内容。这是一个非常广泛的主题,无法用简单的堆栈溢出响应来解释。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 2011-09-14
      • 2011-09-20
      相关资源
      最近更新 更多