新建一个.NET Core项目,我使用的IDE是VS2019

依次创建三个Core类库:第一个命名api.Model,第二个api.Common,第三个api.Bo

解释一下这个三类库的作用:

第一个Model,主要存放一些数据库连接字符串,ORM实体类等

第二个Common,主要存放一些公共类,文件上传,md5加密文件等

第三个Bo,处理一些业务逻辑的事情,比如将用户信息存放到数据库,个人感觉类似于ASP的三层架构中的DAL层吧。。。

总体感觉这三个类库也与三层架构(UI层,DAL层,BLL层)的结构类似。。。

但是,对于这篇文章,个人感觉更主要的是处理数据,写接口。。。

接下来就是要引入相应的NuGet包了

Model:

Bo:

这里暂时不需要用到Common

最后就是要添加类库直接的关联了

Model:

Bo:

以上工作全部完成后项目目录模块如下:

编写数据库(SQL):

  1. create database testDB
  2. use testDB
  3. go
  4. create table [User]
  5. (
  6. id int identity(1,1)not null,
  7. phone varchar(20),
  8. [password] nvarchar(50),
  9. msgCode varchar(10),
  10. regTime dateTime,
  11. nickName nvarchar(50),
  12. state int
  13. )
  14. go

建一个User类:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace api.Model.TestEntities
  6. {
  7. public partial class User
  8. {
  9. public int Id { get; set; }
  10. public string Phone { get; set; }
  11. public string Password { get; set; }
  12. public string MsgCode { get; set; }
  13. public DateTime? RegTime { get; set; }
  14. public string NickName { get; set; }
  15. public int? State { get; set; }
  16. }
  17. }

接下来就是通过datafirst的模式来处理数据

  1. using Microsoft.EntityFrameworkCore;
  2. namespace api.Model.TestEntities
  3. {
  4. public partial class TestContext:DbContext
  5. {
  6. public TestContext()
  7. {
  8. }
  9. public TestContext(DbContextOptions<TestContext> options) : base(options)
  10. {
  11.  
  12. }
  13. public virtual DbSet<User> User { get; set; }
  14. public static string ConStr { get; set; }
  15. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  16. {
  17. if (!optionsBuilder.IsConfigured)
  18. {
  19. optionsBuilder.UseSqlServer(ConStr);
  20. }
  21.  
  22. }
  23. }
  24. }

在appsetting.json文件中配置数据库连接字符串:

Server="服务器名称;User Id=数据库登录名;Password=密码;Database=数据库名称

在Startup.cs在文件中获取数据库连接字符串:

在Model中创建User文件夹并添加两个类:

AddUserP:主要是用于接收客户端传递的数据后添加到数据库中:

  1. namespace api.Model.User
  2. {
  3. public class AddUserP
  4. {
  5. public string phone { get; set; }
  6. public string password { get; set; }
  7. public string nickName { get; set; }
  8. public int state { get; set; }
  9. public string sign { get; set; }
  10. }
  11. }

AddUserR:复制将信息返回给客户端:

  1. namespace api.Model.User
  2. {
  3. public class AddUserR
  4. {
  5. public int code { get; set; }
  6. public string messages { get; set; }
  7. }
  8. }

在Bo类库下创建UserBo类连接数据库通过ef LinQ实现往数据里面添加数据。

别忘记引入using System.Linq;命名空间,不然会报“DbSet<User> 查询模式找不到”的错误

  1. using System.Linq;
  2. namespace api.Bo
  3. {
  4. public class UserBo
  5. {
  6. public static Model.TestEntities.TestContext db = new Model.TestEntities.TestContext();
  7.  
  8. /// <summary>
  9. /// 增加用户 --> 接口
  10. /// </summary>
  11. /// <param name="model"></param>
  12. /// <returns></returns>
  13. public static Model.User.AddUserR AddUser(Model.User.AddUserP model)
  14. {
  15. var r = new Model.User.AddUserR();
  16. Model.TestEntities.User userSearch = (from u in db.User where u.Phone == model.phone select u).FirstOrDefault();
  17. if (userSearch==null)
  18. {
  19. Model.TestEntities.User user = new Model.TestEntities.User();
  20. user.Phone = model.phone;
  21. user.Password = model.password;
  22. user.NickName = model.nickName;
  23. user.State = model.state;
  24. db.User.Add(user);
  25. int i = db.SaveChanges();
  26. if (i > )
  27. {
  28. r.code = ;
  29. r.messages = "数据插入成功";
  30. }
  31. else
  32. {
  33. r.code = ;
  34. r.messages = "数据插入失败";
  35. }
  36.  
  37. }
  38. else
  39. {
  40. r.code = ;
  41. r.messages = "手机号已存在";
  42. }
  43. return r;
  44. }
  45. }
  46. }

在Controllers文件夹下创建一个Userapi接口:

  1. /// <summary>
  2. /// 新增 --> 用户信息接口
  3. /// </summary>
  4. /// <param name="model"></param>
  5. /// <returns></returns>
  6. [HttpPost]
  7. public IActionResult AddUser(api.Model.User.AddUserP model)
  8. {
  9. var r =api.Bo.UserBo.AddUser(model);
  10. return Ok(r);
  11. }

接下来就是要进行接口测试了,这里我使用的是postman。下载地址:https://www.postman.com/

以上操作就是数据新增成功了。。。

我也是刚刚了解.NET Core先上手玩玩,如果以上代码存在误区请注明,一起学习。谢谢!

.NET Core+WebApi+EF访问数据新增用户数据的更多相关文章

  1. .net core webapi+EF Core

    .net core webapi+EF Core 一.描述: EF Core必须下载.net core2.0版本 Micorsoft.EntityFrameworkCore:EF框架的核心包Micor ...

  2. ionic + asp.net core webapi + keycloak实现前后端用户认证和自动生成客户端代码

    概述 本文使用ionic/angular开发网页前台,asp.net core webapi开发restful service,使用keycloak保护前台页面和后台服务,并且利用open api自动 ...

  3. .net core WebAPI+EF 动态接收前台json,并动态修改数据库

    用API开发的人都知道,常用的后台接收参数就是建个DTO,然后前台把这个DTO传过来.后台再更新,例如如下例子: public async Task<IActionResult> PutM ...

  4. Asp.net Core WebApi 支持json/xml格式的数据返回

    Asp.net core 在做webapi项目的时候,默认是只返回json格式的数据的,如果想要开启xml数据返回,需要在startup里配置如下: public void ConfigureServ ...

  5. .net core Webapi +EF

    开发工具 Vs2017 +MSsqlsever 打开VS2017,新建web项目 点击确认,生成项目,在项目中增加文件夹Model,在Model中增加类TodoItem public class To ...

  6. UWP 应用获取各类系统、用户信息 (1) - 设备和系统的基本信息、应用包信息、用户数据账户信息和用户账户信息

    应用开发中,开发者时常需要获取一些系统.用户信息用于数据统计遥测.问题反馈.用户识别等功能.本文旨在介绍在 Windows UWP 应用中获取一些常用系统.用户信息的方法.示例项目代码可参见 Gith ...

  7. JAVA用户数据输入

    数据输入 首先需要导入扫描仪 然后声明扫描仪 输出输入提示 接收用户数据的数据 输出用户数据的数据 实例: import java.util.Scanner; //导入扫描仪 public class ...

  8. RTX服务端用户数据迁移说明

    步骤一 最好在没有人使用RTX腾讯通的时候,这样你才能保证数据的实时同步;可以在服务器里面把RTX的相关服务器暂停再执行. 步骤二 进入RTX管理器用户数据----导出用户数据---还要把用户照片文件 ...

  9. asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行

    1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加us ...

随机推荐

  1. 创建一个tar备份包

                                                                 创建一个tar备份包 2.1问题 本例要求使用tar工具完成以下备份任务: 创 ...

  2. stdio.h file not found mac catalina clion 头文件 找不到

    问题:mac update catalina 版本之后引发的include文件问题 ​ 近期Mac 版本升级到catalina版本,使用CLion调试c/c++程序,莫名其妙的发现,有些头文件incl ...

  3. 将wxpy的登录二维码放到网页上登录

    from flask import Flask, Response from flask.views import MethodView from threading import Thread fr ...

  4. C语言中 sinx cosx 的用法

    #include<stdio.h> #include<math.h> int main() {     double pi=acos(-1.0);     double ang ...

  5. ThinkPHP3.2.3发送微信模板消息

    一.开通模板消息功能 所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限:需要选择公众账号服务所处的2个行业,每月可 ...

  6. ******Prometheus(二)***********

    Prometheus的数据与安全模型: (1)Metric (度量)名字就是描述采集数据的名称——例如,website_visits_total 作为网站访问总数.名称可以包含ASCII字母.数字.下 ...

  7. Cilium使用 (Cilium 3)

    使用k3s测试Cilium,安装步骤可以参见官方文档 Cilium安装使用 docker安装 使用如下命令安装最新版本的docker yum install -y yum-utils \ device ...

  8. 用Python画的,5 种非传统的可视化技术,超炫酷的动态图

    数据可以帮助我们描述这个世界.阐释自己的想法和展示自己的成果,但如果只有单调乏味的文本和数字,我们却往往能难抓住观众的眼球.而很多时候,一张漂亮的可视化图表就足以胜过千言万语.本文将介绍 5 种基于 ...

  9. L23模型微调fine tuning

    resnet185352 链接:https://pan.baidu.com/s/1EZs9XVUjUf1MzaKYbJlcSA 提取码:axd1 9.2 微调 在前面的一些章节中,我们介绍了如何在只有 ...

  10. 我用Python一键保存了半佛老师所有的骚气表情包

    本文首发于公众号「Python知识圈」,如需转载,请在公众号联系作者授权. 2019年发现两个有意思而且内容比较硬核的公众号.都是同一个人运营的,我们都叫他半佛老师,现实中的职业是风控,公众号内容涉及 ...