随笔分类 -  .NET

与.NET相关的文章(非ASP.NET)
摘要:比 90% 的人细心的大伙伴一定发现了 DbContext 类有一个方法叫 FromExpression,它到底干吗用的?官方文档中没有专门的介绍(只在表值函数映射的例子中看到)。 咱们先来看看此方法的签名: IQueryable<TResult> FromExpression<TResult>(E 阅读全文
posted @ 2025-10-14 22:36 东邪独孤 阅读(1636) 评论(4) 推荐(10)
摘要:本来老周计划在 10 月 1 日或 2 日写这篇水文的,没打算出去玩(确实没啥好玩)。不过因为买的运动相机到手,急着想试试效果,于是就备了些干粮,骑着山地车在外面鬼混了一天。10 月 2 日,家里来了三位热爱学习的小妹妹,必须传道授业解惑。10 月 3 日去表弟家里挑一只战斗力强的狸花猫,负责家里的 阅读全文
posted @ 2025-10-06 12:07 东邪独孤 阅读(581) 评论(1) 推荐(1)
摘要:在开始水文章前,老周补充说明一下,在前一篇水文中,老周扯了跟 Owned 关系相关的一些话题,这里补充一句:Owned 关系是不存在“多对多”的,如果 A 实体 Own B 实体,那么,A 对 B 是完全占有,B只属于A,数据不共享,这样就不存在“多”的一端;但A可以同时占用B、C实体,所以一占多是 阅读全文
posted @ 2025-09-24 18:05 东邪独孤 阅读(587) 评论(1) 推荐(4)
摘要:在很多个世纪前,老周曾写过实体之间普通关系(一对一,一对多,多对多)与 Owned 关系的区别。不过,那次写得比较粗浅,逼格不够高,于是,老周厚着脸皮地决定重新写一下。 首先,为什么这次老周用原单词 Owned 呢,官方文档目前的翻译(怀疑是机器干的)为“从属”,这种说法与普通关系数据库中一对多、多 阅读全文
posted @ 2025-09-13 16:32 东邪独孤 阅读(1532) 评论(2) 推荐(8)
摘要:在使用外部模型那篇水文中,有大伙伴提出:老周,你那个 Ultraman 类和 Speciality 类的的关系是不是有问题,外键不应该在 Speciality 类上吗,怎么会跑到 Ultraman 类上?因为它们是一对一关系,在配置的时候你也可以反过来,主要区别是谁引用谁的问题,由于是一对一引用,所 阅读全文
posted @ 2025-09-06 18:48 东邪独孤 阅读(553) 评论(0) 推荐(1)
摘要:本文所讲述内容,大伙伴们不必要完全掌握,毕竟,dotnet ef 工具会帮助咱们生成相关代码。不过,为了让各位能够真正了解它,老周会做一次纯手搓代码。 所谓优化后的模型,相当于把实体的配置进行“硬编码”,程序会执行更少的代码来提升效率。放到实际代码编写上,这个活叫运行时模型,对应的类就是 Runti 阅读全文
posted @ 2025-09-01 19:07 东邪独孤 阅读(522) 评论(0) 推荐(0)
摘要:对于模型的配置,98.757%的情况下,我们使用“数据批注”特性类,或者 Fluent API (重写 DbContext 类的 OnModelCreating 方法)进行配置即可。但在少数情况下,可能会考虑在 DbContext 之外配置模型。比如: 你的实体类和模型,以及 DbContext 派 阅读全文
posted @ 2025-08-24 18:46 东邪独孤 阅读(448) 评论(0) 推荐(1)
摘要:复合(或复杂)属性,即 Complex Property,怎么理解呢?这是相对于常见的基础类型,比如 string、int、byte、long 等类型的属性就是基础类型值,而由多个基础类型构成的类型就是复合类型(当然,复合类型的属性也可以其他复合类型,这里就不套娃了)。 比如,某顿饭由米饭、菜、肉、 阅读全文
posted @ 2025-08-10 21:52 东邪独孤 阅读(1051) 评论(2) 推荐(7)
摘要:对于玩 EF 的大伙伴来说,对 DatabaseFacade 类的 EnsureCreated 和 EnsureDeleted 方法应该很熟悉。这对方法可在运行阶段创建或删除数据库。创建数据库时,会连同数据表一起创建;至于说删除数据库时嘛……库都没了,哪还有表呢。 不过,有些时候,不,不是有些时候, 阅读全文
posted @ 2025-07-27 12:35 东邪独孤 阅读(423) 评论(1) 推荐(4)
摘要:上一次老周已介绍了 EF Core 框架自动发现实体和实体成员的原理。涉及到对源码的分析,可能大伙伴们都看得气压升高了。故这一次老周不带各位去分析源码了,咱们聊一聊熟悉又陌生的关键词——主键。说它熟悉,是因为只要咱们创建数据表,99%会用到;说它陌生,是指在 EF Core 中与主键相关的细节。 P 阅读全文
posted @ 2025-07-20 22:57 东邪独孤 阅读(529) 评论(0) 推荐(4)
摘要:在上一篇水文中,老周生动形象地解释了 DbContext 是如何识别实体 Set 的,大伙伴们可能会产生新的疑惑:实体是识别了,但,实体的属性或字段列表,它是怎么识别并映射给数据表的列的呢? 用过 EF 的人都知道(废话),其实默认情况下,实体类中只要不是静态的属性和字段都会被映射到数据表中,就算你 阅读全文
posted @ 2025-07-13 11:21 东邪独孤 阅读(1842) 评论(3) 推荐(3)
摘要:这一期的话题有点深奥,不过按照老周一向的作风,尽量讲一些人鬼都能懂的知识。 咱们先来整个小活开开胃,这个小活其实老周在 N 年前写过水文的,常阅读老周水文的伙伴可能还记得。通常,咱们按照正常思路构建的应用程序,第一个启动的线程为主线程,而且还是 UI 线程(当然,WPF 默认会创建辅助线程。这都是运 阅读全文
posted @ 2024-06-06 17:46 东邪独孤 阅读(2062) 评论(6) 推荐(10)
摘要:在开始主题之前,先介绍一个刷固件工具。这个工具在 idf 中是集成的,不过,乐鑫也单独发布了这个工具—— esptool。下载链接:Releases · espressif/esptool · GitHub。这货是用 Python 写的,只是封装成了 exe,方便直接运行罢了。 在使用时,需要 -p 阅读全文
posted @ 2024-04-28 22:23 东邪独孤 阅读(2534) 评论(2) 推荐(6)
摘要:地球人皆知,许多物联网教程作者的心中都深爱着一灯大师,所以第一个例程总喜欢点灯,高级一点的会来个“一闪一闪亮晶晶”。老周今天要扯的也是和灯有关的,但不单纯地点个灯,那样实在不好玩,缺乏乐趣。老周打算舞个龙灯,哦不,是用 LED 彩色灯带给伙伴们整点炫酷乐子。 说到这LED彩灯,咱们常见到的有两类: 阅读全文
posted @ 2024-04-17 18:13 东邪独孤 阅读(2951) 评论(6) 推荐(8)
摘要:老周在几个世纪前曾写过树莓派相关的 iOT 水文,之所以没写 Nano Framework 相关的内容,是因为那时候这货还不成熟,可玩性不高。不过,这货现在已经相对完善,老周都把它用在项目上了——第一个是自制的智能插座,这个某宝上50多块可以买到,搜“esp32 插座”就能找到。一种是 86 型盒子 阅读全文
posted @ 2024-04-13 22:22 东邪独孤 阅读(1565) 评论(6) 推荐(5)
摘要:上一篇中,老周简单肤浅地介绍了 XInput API 的使用,并模拟了鼠标移动,左、右键单击和滚轮。本篇,咱们用 .NET 代码来完成相同的效果。 说起来也是倒霉,博文写了一半,电脑忽然断电了。不知道什么原因,可能是 UPS 电源出故障。重新开机进来一看,博文没有自动保存到草稿箱。我记得以前是有自动 阅读全文
posted @ 2024-03-02 23:07 东邪独孤 阅读(898) 评论(0) 推荐(3)
摘要:由于两个月的奋战,导致很久没更新了。就是上回老周说的那个产线和机械手搬货的项目,好不容易等到工厂放假了,我就偷偷乐了。当然也过年了,老周先给大伙伴们拜年了,P话不多讲,就祝大家身体健康、生活愉快。其实生活和健康是密不可分的,想活得好,就得健康。包括身体健康、思想健康、心理健康、精神健康。不能以为我无 阅读全文
posted @ 2024-02-11 12:29 东邪独孤 阅读(4960) 评论(5) 推荐(15)
摘要:老周是一个不喜欢做界面的码农,所以很多时候能用控制台交互就用控制台交互,既方便又占资源少。有大伙伴可能会说,控制台全靠打字,不好交互。那不一定的,像一些选项类的交互,可以用键盘按键(如方向键),可比用鼠标快得多。当然了,要是要触控的话,是不太好用,只能做UI了。 关于控制台交互,大伙伴们也许见得最多 阅读全文
posted @ 2023-12-17 21:17 东邪独孤 阅读(3698) 评论(12) 推荐(51)
摘要:前面老周给大伙伴们演示了过滤器的运行流程,大伙只需要知道下面知识点即可: 1、过滤器分为授权过滤、资源访问过滤、操作方法(Action)过滤、结果过滤、异常过滤、终结点过滤。上一次咱们没有说异常过滤和终结点过滤,不过老周后面会说的。对这些过滤器,你有印象就行了。 2、所有过滤器接口都有同步版本和异步 阅读全文
posted @ 2023-12-02 22:32 东邪独孤 阅读(680) 评论(0) 推荐(2)
摘要:在多线程编程中,如果每个线程的运行不是完全独立的。那么,一个线程执行到某个时刻需要知道其他线程发生了什么。嗯,这就是所谓线程同步。同步事件对象(XXXEvent)有两种行为: 1、等待。线程在此时会暂停运行,等待其他线程发出信号才继续(等你约); 2、发出信号。当前线程发出信号,其他正在等待线程收到 阅读全文
posted @ 2023-11-11 21:15 东邪独孤 阅读(2055) 评论(2) 推荐(12)