![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DotNet
文章平均质量分 94
记录微软技术工作和学习经历
goyeer(工蚁)
生活在城市中的蚂蚁
展开
-
【Entity Framework】如何理解EF中的级联删除
语言集成查询 (LINQ) 包含许多用于组合多个数据源或执行复杂处理的复杂运算符。 并非所有 LINQ 运算符都会在服务器端进行适当转换。 有时,采用一种形式的查询会转换为服务器,但如果采用另一种形式,即使结果相同,也不会转换。本文将介绍部分复杂运算符及其支持的变体。原创 2024-05-17 07:55:50 · 1048 阅读 · 19 评论 -
【Entity Framework】聊聊单个查询与拆分查询
在针对关系数据库工作时,EF通过将JOIN引入单个查询来加载相关实体。虽然使用SQL时,JOIN是相当标准的,但如果使用不当,可能会引发严重的性能问题。本文将介绍这些性能,并展示了一种可充当临时解决办法的用于加载相关实体的替代方法。原创 2024-05-17 07:53:32 · 767 阅读 · 7 评论 -
【Entity Framework】聊聊EF中复杂查询运算符
语言集成查询 (LINQ) 包含许多用于组合多个数据源或执行复杂处理的复杂运算符。并非所有 LINQ 运算符都会在服务器端进行适当转换。有时,采用一种形式的查询会转换为服务器,但如果采用另一种形式,即使结果相同,也不会转换。本文将介绍部分复杂运算符及其支持的变体。以上模式在表达式树中创建复杂的结构。因此,EF Core要求在紧随运算符的步骤中将GroupJoin运算符的分组结果平展。即使使用,但采用其他的模式,也不能将其标识为Left Join。原创 2024-05-16 07:42:25 · 1190 阅读 · 2 评论 -
【Entity Framework】EF中SaveChanges如何使用
虽然查询允许从数据库中读取数据,但保存数据意味着向数据库添加新实体,删除实体或以某种方法修改现有实体的属性。支持将数据保存到数据库。原创 2024-05-16 07:40:35 · 953 阅读 · 0 评论 -
【.NET Core】你真的了解HttpRuntime类吗
C# HttpRuntime是一个ASP.NET应用程序的核心类之一,它提供了一些有用的方法和属性,可以让ASP.NET应用程序中处理HTTP请求和响应。获取当前请求的HttpContext对象获取应用程序的虚拟地址获取应用程序的物理路径获取应用程序的配置信息获取应用程序的缓存启动应用程序的会话状态调用Web服务类在使用HttpRuntime类之前,需要先确保在ASP.NET应用程序中已经引用了System.Web命名空间。原创 2024-05-11 22:41:53 · 1535 阅读 · 19 评论 -
【.NET Core】你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟
CallerMemberName、CallerFilePath、CallerLineNumber特性:调用方法的名称。:调用方法的所有的类文件绝对地址。:调用方法所在行号,可以用来记录日志,能够获取记录日志所在的行号和方法及调用文件。原创 2024-05-11 22:25:17 · 803 阅读 · 9 评论 -
【WPF】聊聊WPF中INotifyPropertyChanged [TOC]
接口用于向客户端发出某一属性值已更改的通知。在应用有两种方式OneTime模式、OneWay模式和TwoWay模式。OneTime模式OneTime模式是一个初始化一次绑定。不常用。OneWay模式绑定源的每一次变化都会通知绑定目标,但是绑定目标的改变不会改变绑定源。当绑定源的数据实体类没有实现INotifyPropertyChanged接口时,当改变了数据源,发现绑定目录的UI上的相应的数据不会立即变化。TwoWay模式TwoWay。原创 2024-05-08 20:10:19 · 1467 阅读 · 20 评论 -
【Entity Framework】聊一聊EF如何使用数据库函数
内置函数是数据库中预定义的,而用户定义的函数是由数据库用户显式定义的。EF Core将查询转换为使用数据库函数时,它使用内置函数来确保该函数在数据库中始终可用。在某些数据库中,需要了解内置函数的特征,才能正确生成SQL。例如SqlServer要求使用架构限定的名称调用各个用户定义的函数。但SqlServer中的内置函数没有架构。PostgreSQL使用public架构定义内置函数,但可使用架构限定的名称调用它们。除了 EF Core 提供程序提供的映射以外,用户还可以定义自定义映射。原创 2024-04-21 22:09:55 · 1596 阅读 · 40 评论 -
【Entity Framework】你必须了解的之自定义SQL查询
通过 Entity Framework Core 可以在使用关系数据库时下降到 SQL 查询。如果所需查询无法使用 LINQ 表示,或者 LINQ 查询导致 EF 生成效率低下的 SQL,则可使用 SQL 查询。SQL 查询可返回一般实体类型或者模型中的无键实体类型。SQL 查询必须返回实体类型的所有属性的数据。结果集中的列名必须与属性映射到的列名称匹配。请注意,此行为与 EF6 不同;EF6 忽略了 SQL 查询的属性-列映射,只需结果集列名与这些属性名相匹配即可。SQL 查询不能包含关联数据。原创 2024-04-19 21:17:15 · 1248 阅读 · 12 评论 -
【Entity Framework】闲话EF中批量配置
当需要在多个实体类型中以相同方式配置一个方面时,可以通过以下方式减少代码重复并合并逻辑。原创 2024-04-19 21:11:24 · 880 阅读 · 6 评论 -
【Entity Framework】你知道如何处理无键实体吗
除了常规实体类型外,EF Core模型还可以包含无键实体类型,可用于对不包含键值的数据执行数据库查询。set;set;set;set;set;set;set;set;set;set;无键主要应用在SQL、视图、存储过程的查询,在制作报表时,应用比较多。原创 2024-04-16 21:59:35 · 927 阅读 · 29 评论 -
【Entity Framework】你必须要了解EF中数据查询之数据加载
允许在模型中使用导航属性来加载关联实体。有三种常见的O/RM模式可用于加载关联数据。预先加载表示从数据库中加载关联数据,作为初始查询的一部分;显示加载表示稍后从数据库中显示加载关联数据;延迟加载表示在访问导航属性时,从数据库中以透明方式加载关联数据;原创 2024-04-16 21:54:26 · 1289 阅读 · 8 评论 -
【Entity Framework】你要知道EF中功能序列与值转换
EF Core含有许多预定义转换,不需要手动编写转换函数。而是根据模型中的属性类型和请求的数据库提供程序类型选取要使用的转换。如:下面的示例中使用了从枚举到字符串的转换,但当提供程序类型配置为string时,EF Core实际上会使用可通过显式地指定数据库列类型实现相同的操作。数据注释set;set;然后,枚举值会被保存为数据库中的字符串,原创 2024-04-15 21:49:18 · 1035 阅读 · 28 评论 -
【Entity Framework】聊一聊EF中继承关系
可以将.NET类型层次结构映射到数据库。这允许你像普通编程一样使用基类型和派生类型在代码中编写.NET实体,并让无缝创建适应的数据库架构,发出查询等。有关如何映射类型层次结构的实际细节取决于提供程序;本博文将介绍关系数据库上下文中的继承支持。TPH 通常适用于大多数应用程序,并且对于各种方案而言都是一个很好的默认值,因此,如果不需要 TPC,请不要添加 TPC 来增加复杂性。具体而言,如果代码主要查询许多类型的实体,例如针对基类型编写查询,则倾向于使用 TPH,而不是 TPC。原创 2024-04-15 21:46:34 · 1306 阅读 · 12 评论 -
【Entity Framework】如何使用EF中的生成值
数据库列的值可以通过多种方式生成:主键列通常是自动递增的整数,其他列具有默认值或计算值等。本文详细介绍使用EF Core配置值生成的各种模式。提供多种在应用端生成值的能力。在实际开发中,需要考虑在数据库层还是在应用层完成这些值的自动匹配和完成值的生成。原创 2024-04-11 21:56:13 · 1754 阅读 · 42 评论 -
【Entity Framework】聊聊EF中键
键用作每个实体实例的唯一标识符。EF中的大多数实体都有一个键,该键映射到关系数据库中主键的概念(对于没有键的实体,后面会讲解无键实体)。实体可以有出了主键之外的其他键。原创 2024-04-10 22:15:09 · 1117 阅读 · 40 评论 -
【Entity Framework】EF连接字符串和模型
本文将介绍如何使用数据库连接及如何更改数据库连接。使用Code First和EF设计器创建的模型在本文中都会说明。通常,实体框架应用程序使用派生自DbContext的类。此派生类将调用基础DbContext上下文如何连接到数据库 - 即如何找到/使用连接字符串。上下文是使用 Code First 计算模型还是加载使用 EF 设计器创建的模型、DbContext 类包含其他构造函数和使用模式,可以实现一些更高级的方案。原创 2024-04-08 20:52:08 · 1370 阅读 · 31 评论 -
【Entity Framework】EF配置文件设置详解
EF实体框架允许在配置文件中指定多个设置。一般来说,EF遵循"约定优于配置"的原则;从EF6开始,引入代码配置,在【Entity Framework】EF配置之代码配置详解一文详解介绍,代码配置提供了一种代码应用配置的重要的方式。仍然可以从代码应用配置,但需要使用各种 API 来配置不同的区域。借助配置文件选项可在部署期间轻松更改这些设置,而无需更新代码。原创 2024-04-07 21:17:38 · 1237 阅读 · 45 评论 -
【Entity Framework】EF配置之代码配置详解
可以在配置文件(app.config/web.config)中指定实体框架应用程序的配置,也可以通过代码进行指定。后者称为基于代码的配置。本博文将介绍配置文件中的配置。配置文件优于基于代码的配置。换而言之,如果在代码和配置文件中都有配置选择,则使用配置文件中的配置。博文讨论仅限于EF6及更高的版本,此页面中讨论的功能,API等已引入实体框架6。如果使用的是早期版本,则部分或全部信息不适用。你还可以添加其他依赖关系处理程序来获得相同的效果。请注意,你也可以通过这种方式包装。原创 2024-04-05 21:28:15 · 1473 阅读 · 50 评论 -
【Entity Framework】EF日志-简单日志记录
Entity Framework Core (EF Core)包含一些用于生成日志,响应事件和获取诊断结果的机制。其中每种机制都针对不同情况进行了定制,务必针对手头上的任务选择最佳机制,即使是多个机制都适用也是如此。本文将介绍EF日志每种机制,及其描述每种机制应用场景。原创 2024-04-03 07:46:10 · 1204 阅读 · 47 评论 -
【Entity Framework】EF中的增删改查
是一个O/R Mapping的实例框架,前面的博文介绍了的知识体系,本文将介绍EF基本使用,Entity Framework操作数据库,完成基本的增删改查。原创 2024-04-01 20:45:35 · 2412 阅读 · 51 评论 -
【Entity Framework】创建并配置模型
EF Core使用元数据模型来描述如何将应用程序的实体类型映射到基础数据库。此模型是使用一组约定构建的,这些约定是寻找常用模式的启发式方法。然后,可以使用映射特性自定义模型和在中调用方法(也称为Fluent API),这两者都将替代约定执行的配置。大多数配置可以应用于面向任何数据存储的模型。提供程序还可以启用特定于特定数据存储的配置,也可以忽略不支持或不适合的配置。原创 2024-03-31 21:10:32 · 1247 阅读 · 39 评论 -
【Entity Framework】EF中DbSet类详解
DbSet可用于查询和保存的TEntity实例。针对的DbSet LINQ查询将转换为针对数据库的查询。可能不会反映上下文中尚未保存到数据库的更改。如:结果将不包含新添加的实体,并且可能扔包含标记为要删除的实体。根据所使用的数据库,针对DbSet的LINQ查询的某些部分可能在内存中求值,而不是转换为数据库查询。DbSet对象通常从DbSet派生DbContext的或方法Set()上的属性获取。Entity Framework Core不支持在同一DbContext实例上运行多个并行操作。原创 2024-03-30 19:00:07 · 2261 阅读 · 46 评论 -
【Entity Framework】EF中实体属性
模型中的每个实体类型都有一组属性,EF Core将从数据库中读取和写入这些属性。如果使用的是关系数据库,实体属性将映射到表列。原创 2024-03-28 21:14:24 · 1311 阅读 · 50 评论 -
【Entity Framework】Code First 数据批注
利用实体框架Code First,可以使用自己的域类来表示EF执行查询,更改跟踪和更新功能所依赖的模型。Code First利用称为“约定优于配置”的编程模式。Code First将假设你的类遵循实体框架的约定,在这种情况下,将自动确定如何执行其工作。如果需要你的类不遵循这些约定,可以向类添加配置以向EF提供必要的信息。Code First 提供了两种将这些配置添加到类的方法。一种方法是使用称为 DataAnnotations 的简单属性。原创 2024-03-26 21:39:46 · 679 阅读 · 11 评论 -
【Entity Framework】 EF三种开发模式
前面博文已介绍了Entity Framework是什么,EF架构等基本知识介绍。本文将从介绍Entity Framework使用的三种方式。Entity Framework的底层其实是调用ADO.NET,它是更高层次的封装,作为数据访问的技术。Entity Framework设计的高扩展性,体现在灵活的映射定义。简单的说,使用Entity Framework可以充分定义与数据库表映射的实体,这个实体可以直接用于业务逻辑层或作为服务的数据契约。原创 2024-03-26 21:32:55 · 1340 阅读 · 14 评论 -
【Entity Framework】 EF中DbContext类详解
DbContext类是实体框架的重要组成部分。它是应用域或实例类与数据库交互的桥梁。从上图可以看出DbContext是负责与数据交互作为对象的主要类。原创 2024-03-23 20:20:45 · 3662 阅读 · 23 评论 -
实体框架EF(Entity Framework)简介
是微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上。提供变更追踪,唯一性约束,惰性加载、查询事务等功能。开发人员使用Linq语言,对数据库操作如同操作Object对象一样省事。使用场景:ORM-Object/Relational Mapper,即“对象-关系型数据映射组件”。对于O/R,即 Object(对象)和 Relational(关系型数据),表示必须同时使用面向对象和关系型数据进行开发。ORM是将数据存储从域对象自动映射到关系数据库的工具。ORM主原创 2024-03-22 08:43:02 · 2107 阅读 · 21 评论 -
【.NET Core】深入理解IO - 读取器和编写器
System.IO名空间还提供用于在流中读取和写入已编码字符的类型。通常,流用于字节输入和输出。读取器和编写器类型处理编码字符与字节之间的来回转换,以便流可以完成操作。每个读取器和编写器类都与流关联,可以通过类的BaseStream属性进行检索。System.IO和- 用于将基元数据类型作为二进制值进行读取和写入。和- 用于通过使用编码值在字符和字节之间来回转换来读取和写入字符。和- 用于从字符串读取字符以及将字符写入字符串中。TextReader和TextWriter。原创 2024-03-04 22:48:55 · 1821 阅读 · 34 评论 -
【.NET Core】.NET中的流(Stream)
管道通信可以达到解耦的目的,产生数据的线程不需要直接调用处理数据的方法并等待返回结果,只需要将数据放入管道,接着继续执行自己的任务;但是缓冲区设置的大小对性能也有影响,默认值是4096字节,并能够根据需要自动增长,并且很多属性都与基础流一致,缓冲数据能够减少对操作系统的调用次数,缓冲数据主要存储在缓冲区中,缓冲区是内存中的字节块。,因此,一个对象的流式处理的输出可以将其填充到另一个对象的输入。类主要是提供用于网络访问的基础数据流,它主要是网络数据传输的载体,并提供同步,异步方法来访问网络数据流。原创 2024-03-04 08:44:39 · 1717 阅读 · 32 评论 -
【.NET Core】深入理解IO - FileSteam流
抽象类Stream支持读取和写入字节。所有表示流的类都继承自Stream类。Stream类及其派生类提供数据源和存储库的常见视图。读取 - 将数据从流传输到数据结构中。写入 - 将数据从数据源传输到流。查找 - 对流中的当前位置进行查询和修改。IO流常用的流包含一下几个类,博主将在将来的博文中一一介绍。FileStream- 用于对文件进行读取和写入操作。- 用于对独立存储中的文件进行读取或写入操作。- 用于作为后备存储对内存进行读取和写入操作。- 用于改进读取和写入操作的性能。原创 2024-03-01 22:12:27 · 1921 阅读 · 32 评论 -
【.NET Core】深入理解IO之Path
文件和流 I/O(输入/输出)是指在存储媒介中传入或传出数据。在 .NET 中,System.IO命名空间包含允许以异步方式和同步方式对数据流和文件进行读取和写入操作的类型。这些命名空间还包含对文件执行压缩和解压缩的类型,以及通过管道和串行端口启用通信的类型。【.Net Core】深入理解IO之文件和目录与【.NET Core】深入理解IO之File类已详细讲解了对目录的操作和对文件操作,下面我们将讲解IO中的一个重要类Path的应用。路径是提供文件或目录位置的字符串。路径不一定指向磁盘上的位置。原创 2024-02-29 08:25:32 · 1257 阅读 · 27 评论 -
【.NET Core】深入理解IO之File类
C#中操作文件的最基本类就是IO类,里面就定义了很多衍生类和方法给我们对文件进行处理、转换、执行等操作;其中流分为写入流(输入流)和读取流(输出流),输出流用于对文件进行读取流操作,输入流用于对文件进行写入数据;原创 2024-02-27 23:00:57 · 1692 阅读 · 29 评论 -
【.Net Core】深入理解IO之文件和目录
文件和流I/O(输入/输出)是指在存储媒介中传入或传出数据。在.NET中,System.IO命名空间包含允许以异步方式和同步方式对数据流和文件进行读取和写入操作的类型。这些命名空间还包含对文件执行压缩和解压的类型,以及通过管道和串行端口启用通信的类型。文件是一个由字节组成的有序的命名集合,它具有永久存储。你将处理目录路径、磁盘存储、文件和目录名称。相反,流是一个字节序列,可用于对后备存储进行读取和写入操作,后备存储可以是多个存储媒介之一(例如,磁盘或内存)。原创 2024-02-27 08:44:48 · 1528 阅读 · 20 评论 -
【.NET Core】常见C#代码约定
代码标准对于在开发团队中维护代码可读性、一致性和协作至关重要。遵循行业实践和既定准则的代码更易于理解、维护和扩展。大多数项目通过代码约定强制要求样式一致。本文我们将讨论编码约定和用于强制实施这些约定的工具。原创 2024-02-20 20:32:03 · 1220 阅读 · 43 评论