Using Repository and Unit of Work patterns with Entity Framework 4.0
如果您曾经看过我博客,您知道我一直在讨论POCO各个方面功能用来添加到Entity Framework 4.0中。POCO让持久性变的简单,但这永远不可能EF3.5中实现。
如果你错过了POCO系列文章,我在这里列出它们以便能够方便阅读。这可能是一个好主意用来快速找到它们。
- POCO in Entity Framework : Part 1 – The Experience
- POCO in Entity Framework : Part 2 – Complex Types, Deferred Loading and Explicit Loading
- POCO in Entity Framework : Part 3 – Change Tracking with POCO
在这篇文章中,我们将要演示如何把我们的例子进一步的使用一些常见的模式如 Repository 与Unit Of Work 因此,在我们的例子中,我们可以观察到实现持久性的一些必要细节。
扩展在我们基于Northwind的例子,假设我有兴趣支持以下客户面向实体的操作:
- Query for a customer by ID
- Searching for Customer by Name
- Adding a new Customer to the database
我也希望能够根据ID来查询产品
最后根据一个客户,我希望能够添加一个订单信息到数据库中
在我们进行这些工作之前,有两件事情,首先我想要绕过其中的一种方式
Implementing the Repository
让我们开始我们的工作之前,必须有一个Customer实体与看一个repository来处理Customer实体, 可能像下面的样子:
public interface ICustomerRepository { Customer GetCustomerById(string id); IEnumerable<Customer> FindByName(string name); void AddCustomer(Customer customer); }
这个repository接口似乎能够满足我们的所有需求:
- GetCustomerById should allow me to get a single customer entity by primary key
- FindByName should allow me to search for customers
- AddCustomer should allow me to add customer to the database
Base Link:
分类:
ASP.NET Core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述