![](https://img-blog.csdnimg.cn/direct/38af1d474a88484791c21f142b52ad60.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
.Net进阶
文章平均质量分 63
适合初学者至高级开发者,分享教程、技巧、最佳实践、框架解析、新技术动态等内容
微微的猪食小窝
本人精通 Word、Excel、PowerPoint、VScode等软件的安装与卸载;
熟练掌握VB、C++、Python、SQL、Java 等单词的拼写;
熟悉Win11、Linux、Android、Ios等操作系统的开关机。
展开
-
ToList()和ToArray()的区别
ToList()和ToArray()的区别以下是具体分析:1. 返回类型2. 内部处理3. 性能表现4. 使用场景5. 类型安全性6. 内存占用7. 灵活性。原创 2024-05-29 22:00:00 · 824 阅读 · 0 评论 -
全局查询筛选器适用场景 以及各场景示例
多租户:在多租户应用程序中,每个租户的数据应该彼此隔离。通过使用全局查询筛选器,可以轻松确保每次查询仅返回特定租户的数据,而无需在每个查询中显式添加Where子句。软删除:软删除是一种数据管理策略,允许在数据库中保留已删除的数据,而不是完全从数据库中移除。通过使用全局查询筛选器,可以自动排除那些被标记为已删除的数据行,从而在查询结果中只包含未删除的数据。数据访问权限:在某些应用中,您可能基于用户的角色或权限来限制他们可以访问的数据。全局查询筛选器可以确保即使忘记了添加权限检查,查询也仍然只返回用户可以访原创 2024-05-27 22:29:38 · 884 阅读 · 0 评论 -
如何使用纯原生的ADO.NET技术进行数据读取
如何使用纯原生的ADO.NET技术进行数据读取1. 引用命名空间2. 创建连接字符串3. 打开数据库连接4. 执行SQL查询5. 读取结果集6. 处理异常和关闭连接原创 2024-05-24 22:21:29 · 380 阅读 · 0 评论 -
EFCore如何配置关系?
在 Entity Framework Core (EF Core) 中,配置关系通常通过 Fluent API 来完成。Fluent API 提供了一种在代码中显式配置实体及其关系的方式,而不是依赖于约定或数据注解。原创 2024-05-21 17:15:49 · 312 阅读 · 0 评论 -
在LINQ中,如何使用Include方法加载关联的实体或集合?
Include 方法允许你在查询数据时一并加载关联的实体或集合。这有助于减少数据库访问次数,因为你可以一次性获取所有需要的数据,而不是分别查询每个关联的实体。原创 2024-05-21 16:59:50 · 567 阅读 · 0 评论 -
Migrations
Entity Framework的Migrations工具是一个版本控制和数据库迁移的系统,它允许开发者以编程方式管理数据库模式的变更。Migrations工具是Entity Framework中一个非常强大的特性,它使得数据库的版本控制和变更管理变得更加简单和可靠。通过使用这个工具,开发者可以确保他们的数据库始终与数据模型保持同步,从而避免了许多潜在的问题。原创 2024-04-25 22:22:19 · 418 阅读 · 0 评论 -
DI是什么(Dependency Injection)依赖注入
".Net DI" 通常指的是 ".NET 的依赖注入(Dependency Injection)"。依赖注入是一种实现控制反转(Inversion of Control, IoC)的技术,主要用于解耦应用程序的组件,使得它们之间的依赖关系更加灵活和可测试。原创 2024-04-18 21:26:26 · 244 阅读 · 0 评论 -
对象生命周期:Transient(瞬态)、Scoped(范围)、Singleton(单例)
在对象生命周期和依赖注入(DI)的上下文中,特别是在使用如Microsoft.Extensions.DependencyInjection(.NET Core的DI容器)等框架时,对象的生命周期通常被划分为几个不同的类型:Transient(瞬态)、Scoped(范围)和Singleton(单例)。 选择正确的生命周期对于应用程序的性能、线程安全和资源管理至关重要。例如,如果你有一个需要频繁创建和销毁的昂贵资源(如数据库连接),使用Singleton可能是一个好主意,以避免不必要的开销。相反,原创 2024-04-17 21:36:42 · 403 阅读 · 0 评论 -
无法将 null 字面量转换为非 nul 的引用类型
如果一个引用类型变量被声明为非可空的,但你却试图将它赋值为 null,编译器就会抛出这个错误。这个错误信息“无法将 null 字面量转换为非 nul 的引用类型”通常出现在编程时,特别是在使用 C# 或类似的强类型语言时。:虽然这不是推荐的做法,但在某些情况下,你可以通过在项目文件中设置 disable 来禁用可空引用类型的检查。通常,尽量使你的代码能够处理 null 值是一个好的做法,这样可以避免在运行时出现空引用异常。)来提供一个默认值。来声明变量为可空的。原创 2024-04-16 22:45:11 · 478 阅读 · 0 评论 -
委托 lambda linq之间的演变过程
委托是 C# 中用于定义方法签名和回调函数的机制。Lambda 表达式提供了一种更简洁的方式来定义匿名函数,并且可以作为委托的实例使用。LINQ 利用了 Lambda 表达式的特性,提供了一种声明式编程模型来查询各种数据源。原创 2024-04-13 17:07:27 · 276 阅读 · 0 评论 -
.Net 里面WhenAll的解释和用法
在.NET中,WhenAll 是一个与异步编程相关的扩展方法,它属于 System.Threading.Tasks 命名空间下的 TaskExtensions 类。这个方法主要用于处理一组 Task 对象,并等待它们全部完成。当所有任务都完成时,WhenAll 将返回一个包含所有任务结果的 Task 对象。原创 2024-04-11 20:26:51 · 494 阅读 · 0 评论 -
异步编程的概念 以及async和await的工作原理
async和await是C# 5.0及更高版本中引入的关键字,用于简化异步编程。它们的工作原理可以概括为以下几点:原创 2024-04-10 22:40:26 · 1561 阅读 · 0 评论 -
.Net 中关于Task的介绍
在.NET中,Task 是一个表示异步操作的对象,它是 System.Threading.Tasks 命名空间中的核心类。Task 类用于封装一个操作,这个操作可能是一个方法、一个函数、一个委托或一个表达式,它可以在后台线程上异步执行,而不会阻塞调用线程。在这个示例中,我们创建了一个 Task 来在后台线程上执行一些工作,并且使用 await 关键字来等待任务完成。这允许我们在任务执行期间继续执行其他代码(如果有的话),并在任务完成后继续执行后续代码。原创 2024-04-10 20:44:36 · 679 阅读 · 0 评论 -
.Net语言中的StringBuilder:入门到精通
StringBuilder 是一个强大的类,用于在 .NET 中构建和处理可变长字符串。通过理解和熟练掌握其用法和最佳实践,你可以编写出更高效、更可维护的代码。在编写涉及大量字符串操作的代码时,应考虑使用 StringBuilder 以提高性能和响应速度。原创 2024-04-09 22:31:12 · 462 阅读 · 0 评论 -
.NET ManagedThreadId用法
在.NET中,ManagedThreadId 是一个属性,它属于 System.Threading.Thread 类。这个属性用于获取当前托管线程的唯一标识符。在.NET应用程序中,当你需要识别或跟踪特定的线程时,ManagedThreadId 可以非常有用。原创 2024-04-09 22:07:07 · 409 阅读 · 0 评论 -
.Net HttpClient应用
HttpClient 提供了一个高级别的 API,用于向 Web 服务发送请求并接收响应,同时隐藏了很多底层的细节,如套接字管理和 HTTP 协议的实现。在上面的示例中,我们创建了一个 HttpClient 实例,然后使用 GetAsync 方法发送一个异步 GET 请求到指定的 URI。异步编程:HttpClient 的方法(如 GetAsync、PostAsync 等)都是异步的,应该使用 await 关键字来调用它们,以避免阻塞调用线程,并提高应用程序的响应性和吞吐量。原创 2024-04-08 22:07:24 · 261 阅读 · 0 评论