【问题标题】:entity framework clarification about model objects and their methods关于模型对象及其方法的实体框架说明
【发布时间】:2016-10-24 19:28:10
【问题描述】:

我有一个关于 EF 的概念性问题。

总的来说,我对 ORM 的想法还很陌生,所以我想澄清一些事情:

  • 我有一个现有的数据库,我想将我从该数据中提取的数据转换为我的应用程序可以作为对象进行交互的对象,而不仅仅是数据。

一个 ORM 可以做到这一点,对吗?

  • 在 EF 中我可以创建特定于我的对象的方法吗?例如,我可以这样做,以便我的应用程序可以调用类似 employee.ViewDetails() 的东西 employee 是一个对象吗? 如果有,有没有简单的教程可以推荐?

  • EF 在应用程序之间是否可移植?意思是,构建 EF 结构然后将其移植到多个应用程序是否容易? 我可以通过从不同的解决方案中引用它来做到这一点,不是吗?

感谢大家的帮助

【问题讨论】:

    标签: c# .net asp.net-mvc entity-framework orm


    【解决方案1】:

    鲸脂,

    使用 EF 有多种方法,它们是代码优先、模型优先和数据库优先。 更多信息可以在下面的 SO 帖子中找到。

    Code-first vs Model/Database-first

    1) 您可以在上下文中使用 LINQ to SQL 或 LINQ 对象与 EF 等 ORM 来与对象交互。

    2) 如果您想要特定类型的特定方法,那么您可能想看看为特定类型编写扩展方法。 更多信息在这里 https://msdn.microsoft.com/en-us/library/bb311042.aspx

    3) 为了使其可移植,您可能希望围绕它构建抽象,例如,您可能希望编写存储库类来分离使用 EF 的 DB 层和调用它的层(也称为存储库层)。 更多信息可以在这里找到

    http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

    希望对你有帮助,

    普拉文·拉朱

    【讨论】:

    • 感谢您的回答。澄清 - 存储库类使其更具可移植性,但随后允许您将这些存储库类带入其他项目,而不必担心数据库连接或任何东西,因为这些是在项目本身中定义的,并且存储库比它高出一步,正确?那么这只是从不同项目中引用相同存储库的问题吗?
    【解决方案2】:

    在回答您的问题之前,让我简要介绍一下实体框架

    使用实体框架编写面向数据的应用程序具有以下好处:

    • 缩短开发时间:框架提供核心数据访问功能,因此开发人员可以专注于应用程序逻辑。

    • 开发人员可以根据更加以应用程序为中心的对象模型工作,包括具有继承、复杂成员和关系的类型。在 .NET Framework 4 中,实体框架还通过普通旧 CLR 对象 (POCO) 实体支持持久性无知。

    • 通过支持独立于物理/存储模型的概念模型,应用程序摆脱了对特定数据引擎或存储架构的硬编码依赖。

    • 对象模型和存储特定架构之间的映射可以在不更改应用程序代码的情况下更改。
    • 语言集成查询支持(称为 LINQ to Entities)为针对概念模型编写查询提供 IntelliSense 和编译时语法验证。

    回到你的第一个问题

    • 是的

    实体框架在三种情况下很有用。

    1- 首先,如果您已经有现有数据库,或者您想在应用程序的其他部分之前设计您的数据库。 (这是你目前的情况)

    2- 第二,您希望专注于您的域类,然后从您的域类创建数据库

    3- 第三,您想在可视化设计器上设计数据库架构,然后创建数据库和类。


    2) 在 EF 中,我可以创建特定于我的对象的方法吗?例如,我可以这样做,以便我的应用程序可以调用诸如employee.ViewDetails() 之类的东西,其中员工是一个对象?如果是这样,您可以推荐一个简单的教程吗?

    是的,当然看看这个: - https://msdn.microsoft.com/en-us/library/dd456847.aspx - http://www.asp.net/mvc/overview/older-versions-1/models-data/creating-model-classes-with-the-entity-framework-cs


    3) EF 在应用程序之间是否可移植?意思是,构建 EF 结构然后将其移植到多个应用程序是否容易?我可以通过从不同的解决方案中引用它来做到这一点吗?

    您可能需要实施存储库模式 看看这个惊人的教程

    希望这会有所帮助! 祝你一切顺利:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多