ASP.NET Web API 代码使用哪种模式 - C#

Posted

技术标签:

【中文标题】ASP.NET Web API 代码使用哪种模式 - C#【英文标题】:ASP.NET Web API code uses which pattern - C# 【发布时间】:2021-12-15 22:28:25 【问题描述】:

我在所谓的存储库层中有以下代码。

public class EmployeeDetailsRepository : IEmployeeDetailsRepository

    private readonly IDataAccess _dataAccess;

    public ILogger Logger  get; set; 

    public EmployeeDetailsRepository(IDataAccess dataAccess)
    
        Logger = LoggerUtil.GetLogger("Data access repository");
    

    public EmployeeDetails GetEmployeeByFirstName(string firstName)
    
        EmployeeDetails employeeDetails;

        using (ILinqContext context = _dataAccess.CreateContext(""))
        
            employeeDetails =
                (from stg in context.Table<Employees>() 
                 where (stg.Name == firstName)
                 select stg).FirstOrDefault();
        
        
        return employeeDetails;
    

上面的代码到底是什么意思?我搜索的每个示例都是针对 ASP.NET Core 的。我知道这是使用 Web API 2 的 ASP.NET Framework 4.5。但是我在搜索时看到了这么多模式,我应该阅读/学习什么来更好地理解这种模式?

如果需要,我可以粘贴更多代码。

【问题讨论】:

【参考方案1】:

您的代码所做的是;它正在使用Entity framework 实现存储库模式

当您调用上述方法时,EF 会生成如下 SQL 查询:

SELECT TOP(1) [e].[Id], [e].[DoB], [e].[FirstName], [e].[LastName]
FROM [Employees] AS [e]
WHERE [e].[FirstName] = N'Bill'

您可以参考以下内容了解更多信息。

https://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-5-Implementing-the-repository-with-EF-Code-First-and-Dependency-Injection

https://www.youtube.com/watch?v=rtXpYpZdOzM

【讨论】:

还有更多使用 asp.net web api 的 youtube 视频吗?【参考方案2】:

看看Implementing the Repository and Unit of Work Patterns in an ASP.NET MVC Application

它很好地解释了这种模式

【讨论】:

你能指点一些youtube教程吗?

以上是关于ASP.NET Web API 代码使用哪种模式 - C#的主要内容,如果未能解决你的问题,请参考以下文章

WCF 服务与 ASP.NET Web Api

ASP.NET 的 web api - 如何构建对象流

如何在 ASP.NET Web API 中使用非线程安全的 async/await API 和模式?

asp.net中datalist和repater哪种方法省资源?

ASP.NET Web API根据代码注释生成Help文档

不可接受的响应 (406) 消息 Asp.NET 代码 Web API (C#) - .NET 5.0