Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于模型对象及其方法的实体框架说明_C#_.net_Asp.net Mvc_Entity Framework_Orm - Fatal编程技术网

C# 关于模型对象及其方法的实体框架说明

C# 关于模型对象及其方法的实体框架说明,c#,.net,asp.net-mvc,entity-framework,orm,C#,.net,Asp.net Mvc,Entity Framework,Orm,我有一个关于EF的概念性问题 一般来说,我对ORM的概念还很陌生,所以我想澄清一些事情: 我有一个现有的数据库,我想将我从该数据中提取的数据转换成我的应用程序可以作为对象交互的对象,而不仅仅是数据 ORM可以做到这一点,对吗 在EF中,我可以创建特定于对象的方法吗?例如,我可以让我的应用程序调用类似于employee.ViewDetails()的东西,其中employee是一个对象吗? 如果是的话,你能推荐一个简单的教程吗 EF在应用程序之间是否可移植?也就是说,构建EF结构然后将其移植到

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

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

  • 我有一个现有的数据库,我想将我从该数据中提取的数据转换成我的应用程序可以作为对象交互的对象,而不仅仅是数据
ORM可以做到这一点,对吗

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

  • EF在应用程序之间是否可移植?也就是说,构建EF结构然后将其移植到多个应用程序是否容易? 我可以从不同的解决方案中引用它,不是吗

谢谢你的帮助

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

1) 您可以在具有类似于ORM的EF的上下文中使用LINQ to SQL或LINQ对象与对象交互

2) 如果您想要特定于特定类型的方法,那么您可能需要看看为特定类型编写扩展方法。 更多信息请点击此处

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

希望有帮助


Praveen Raju

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

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

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

  • 开发人员可以使用更以应用程序为中心的对象模型,包括具有继承、复杂成员和关系的类型。在.NETFramework4中,实体框架还支持通过普通旧CLR对象(POCO)实体实现持久性忽略

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

  • 对象模型和存储特定架构之间的映射可以更改,而无需更改应用程序代码
  • 语言集成查询支持(称为LINQtoEntities)为编写针对概念模型的查询提供智能感知和编译时语法验证

回到你的第一个问题

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

1-首先,如果您已有现有数据库,或者您希望在应用程序的其他部分之前设计数据库。(哪一个是您当前的案例)

2-其次,您希望专注于域类,然后从域类创建数据库

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


2) 在EF中,我可以创建特定于对象的方法吗?例如,我可以让我的应用程序调用employee.ViewDetails()之类的东西,其中employee是一个对象吗?如果是的话,你能推荐一个简单的教程吗

是的,当然,看看这个: - -


3) EF在应用程序之间是否可移植?也就是说,构建EF结构然后将其移植到多个应用程序是否容易?我可以从不同的解决方案中引用它吗

您可能需要实现存储库模式 看看这篇精彩的教程

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

谢谢你的回答。澄清一下-存储库类使其更具可移植性,但允许您将这些存储库类带到其他项目中,而不必担心数据库连接或其他问题,因为这些都是在项目本身中定义的,并且存储库比这高一步,对吗?那么,这只是从不同的项目中引用相同的存储库的问题?