使用.Net核心和Web API 2进行CRUD操作

时间:2017-02-21 13:16:25

标签: c# asp.net-core asp.net-web-api2

我正在研究C#和sql server 2012.我是.Net Core的新手。我想用我的工作覆盖.net核心的web api 2,所以我想要了解如何在web api 2和.net核心中完成CRUD操作的基本思路。谢谢。

3 个答案:

答案 0 :(得分:1)

在我回答你的问题之前,让我告诉你一些可能会改变你看待.net核心的方式。 在普通的MVC .NET Framework 4.x中,您可以选择WebAPI2或普通的MVC。 在.net核心中,这两者是合并的,这意味着你选择哪一个并不重要。他们指向相同的图书馆。

就CRUD而言,您可以使用[HttpGet],[HttpPost],[HttpPut]和[HttpDelete]属性为端点提供特定功能。 如果您想从请求正文中获取参数,可以使用HttpContext.Request.Form ["参数名称"]。

您还可以使用端点构造函数中的[FromBody]属性将对象映射到模型。

就数据库而言,您可以使用Entity Framework的代码优先方法根据您的模型生成数据库。

对于深入的EF内容,您可以访问:https://docs.microsoft.com/en-us/ef/core/

答案 1 :(得分:1)

我建议您先查看以下文档:https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro

关于如何使用LINQ来理解这里执行的基于ORM的查询,请检查以下内容:https://msdn.microsoft.com/en-us/library/bb399367(v=vs.110).aspx

您有查询和放大器的示例。方法语法。我更喜欢方法,但两者都可以,只要你在你的应用程序中保持一致。

如果您打算使用此Entity Framework方法,请参阅以下简短示例:

  1. 定义您将在项目中使用的架构,例如:

    • API控制器(与.Net Core中的普通控制器相同)
    • 服务层
    • 回购图层
  2. 在repo层内部注入AppplicationDbContext并编写如下方法:

  3. GetAllAsync(), GetByIdAsync, UpdateAsync(), DeleteAsync(), CreateAsync() ...

    1. 通过接口将其暴露给服务层。在服务层中添加所需的任何业务逻辑。

    2. 然后在api控制器中你可以使用例如:

      await _serviceName.GetAllAsync()..

    3. 以JSON或您需要的任何其他格式返回结果。

答案 2 :(得分:0)