EF实体框架初了解

2024-08-21 15:48
文章标签 框架 了解 实体 ef

本文主要是介绍EF实体框架初了解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  什么是实体(Entity),相信大家都认识过了,就是我们重构机房收费系统的时候,那个在三层之间负责传数据的层嘛。在一个作用域内数据类型是如何定义的。


一、实体框架(EntityFramework)是什么呢?


  Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。EF是开发可以采用特定于域的对象和属性的形式使用数据,不用开路存储数据的技术数据库表和列。形成了更高一个层面上的抽象,并且能够以相对传统应用程序更少的代码。


二、可能你又会问,这个ORM框架是什么东西?


  广义上,ORM指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换。狭义上,ORM可以被认为是,基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想情况下,基于这样一个面向对象的接口,持久化一个OO对象应该不需要要了解任何关系型数据库存储数据的实现细节。表实体和表的相互转化。将实体的变化映射到表中。


[三个字母的含义]

三、EF工作原理?


  利用了抽象化数据结构的方式,将每一个数据库对象都转换成应用程序对象,而数据字段都变成了属性,关系则变成了结合属性,让ER模型完全变成数据库对象模型。这样就可以让程序员用最熟悉的语言去操作这些对象,事实上是在操作数据库的变化。在抽象化的结构之下,再结合三层框架让数据访问轻松的实现。


四、有常见两种方法来定义数据模型:


1、CodeFirst

使用Code First 用代码来定义模型,然后生成数据库。
CodeFirst是EntityFramework的一种技术手段,因为传统编程方
式都是先建立数据库,然后根据数据库模型为应用程序建模,再进行开发;CodeFirst从字面上理解就是代码先行,先在程序中建立要映射到数据库的实体结构,然后EntityFramework可以根据实体结构生成所对应的数据库。


2、ModelFirst

使用Model First 用方框和线条来定义模型,然后生成数据库。

通过 Model First,可以使用实体框架设计器来设计新模型,然后从模型生成数据库架构。模型存储在一个 EDMX 文件(扩展名为 .edmx)中,可在实体框架设计器中查看和编辑。应用程序中用于交互的类是自动从 EDMX 文件生成的。


五、举例ModelFirst

1、创建ADO.NET实体数据模型


2、添加实体


3、根据模型生成数据库



4、测试数据库连接



5、数据库生成,会生成对应的数据库脚本语言。




举例CodeFirst:

codefirst需要用到数据库访问的上下文DBContext对象。结合Linq进行数据的查询。


namespace CodeFirstDatabaseSample
{class Program{static void Main(string[] args){using (var db = new BlogContext()){Console.Write("Enter a name for a new blog:");var name = Console.ReadLine();var blog = new Blog { Name = name };db.Blogs.Add(blog);db.SaveChanges();var query = from b in db.Blogsorderby b.Nameselect b;foreach (var item in query){Console.WriteLine(item.Name);}}}public class Blog{public int BlogId { get; set; }public string Name { get; set; }public virtual List<Post> Posts { get; set; }}public class Post{public int PostId { get; set; }public string Title { get; set; }public string Content { get; set; }public int BlogId { get; set; }public virtual Blog Blog { get; set; }}public class BlogContext : DbContext{public DbSet<Blog> Blogs { get; set; }public DbSet<Post> Posts { get; set; }}}
}


六、总结


  实体框架将数据库对象抽象化,方便了我们对数据库修改等操作。让数据的访问工作变的简单。



这篇关于EF实体框架初了解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1093595

相关文章

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

一文带你深入了解Python中的GeneratorExit异常处理

《一文带你深入了解Python中的GeneratorExit异常处理》GeneratorExit是Python内置的异常,当生成器或协程被强制关闭时,Python解释器会向其发送这个异常,下面我们来看... 目录GeneratorExit:协程世界的死亡通知书什么是GeneratorExit实际中的问题案例

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization