文章作者 Julie Lerman 是 Microsoft MVP、.NET 导师和顾问,住在佛蒙特州的山区。您可以在全球的用户组和会议中看到她对数据访问和其他 .NET 主题的演示。她的博客地址是 thedatafarm.com/blog。她是“Entity Framework 编程”及其 Code First 和 DbContext 版本(全都出版自 O’Reilly Media)的作者。通过 Twitter 关注她:@julielerman 并在 juliel.me/PS-Videos 上观看其 Pluralsight 课程。
以下文章全部出自Julie Lerman之手,最初我是在MSDN杂志上看到。
- 数据点 - CQRS 和 EF 数据模型
命令查询职责分离 (CQRS) 是一种模式,它实际上在以下这些方面提供指导:分离读取数据的职责和引起系统的状态更改的职责(例如,发送确认消息或写入数据库),以及设计相应的对象和体系结构。其设计初衷是帮助高事务性系统,如银行系统。Greg Young 从 Bertrand Meyer 的命令查询分离 (CQS) 策略演化出 CQRS,Martin Fowler 认为其最有价值的概念是“如果你能清楚地将更改状态的方法与未更改状态的方法分离出来,那么这个模式会非常有用”(bit.ly/2cuoVeX)。CQRS 所添加的概念是为命令和查询创建完全分离的模型…… - 数据点 - 处理 EF 中断开连接的实体的状态
断开连接的数据是在 Entity Framework 推出之前就已存在的老问题,就此而言,对于大多数数据访问工具来说亦是如此。它从来都不是一个很容易就能解决的问题。服务器通过线缆发送数据,但不知道在请求发送数据的客户端应用中可能发生什么,更不知道其是否将返回数据。然后请求中突然重新冒出一些数据。但是是相同的数据吗? 缺少这些数据是怎么回事? 这些数据是否发生了什么? 是全新的数据吗? 有这么多需要担心的问题…… - 数据点 - EF Core 更改-跟踪行为: Unchanged、Modified 和 Added
你可能已经识别出 Entity Framework (EF) 中作为枚举用于 EntityState 的 Unchanged、Modified 和 Added。它们也帮助我描述 EF Core 中更改跟踪的行为(与 Entity Framework 早期版本相比)。更改跟踪在 EF Core 中已变得更一致,因此当你在使用断开连接的数据时,对预期结果会更有自信……
第一篇杂志介绍了命令通过EF实现查询职责分离模式,当中作者对于值对象实现的代码我也记录到了代码小目中
第二篇杂志通过对ObjectContext和DbContext的发展历程的介绍,说明了EF中状态更新的必要性和使用上的偶然性,同时比较了Attach方法和EntityState属性在实际情况中的异同。后文中还介绍了作者自定义跟踪EF实体状态的一种模式,值得参考和吸收。
第三篇杂志指出EF Core和EF具有两组不同的API,并分析了部分方法和状态更新指示。笔者另外也推荐ASP.NET Core教程中结合EF Core的示例说明。