新建一个.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):

create database testDB
use testDB
go
create table [User]
(
id int identity(1,1)not null,
phone varchar(20),
[password] nvarchar(50),
msgCode varchar(10),
regTime dateTime,
nickName nvarchar(50),
state int
)
go

建一个User类:

using System;
using System.Collections.Generic;
using System.Text; namespace api.Model.TestEntities
{
public partial class User
{
public int Id { get; set; }
public string Phone { get; set; }
public string Password { get; set; }
public string MsgCode { get; set; }
public DateTime? RegTime { get; set; }
public string NickName { get; set; }
public int? State { get; set; }
}
}

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

using Microsoft.EntityFrameworkCore;
namespace api.Model.TestEntities
{
public partial class TestContext:DbContext
{
public TestContext()
{
}
public TestContext(DbContextOptions<TestContext> options) : base(options)
{ }
public virtual DbSet<User> User { get; set; }
public static string ConStr { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer(ConStr);
} }
}
}

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

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

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

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

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

namespace api.Model.User
{
public class AddUserP
{
public string phone { get; set; }
public string password { get; set; }
public string nickName { get; set; }
public int state { get; set; }
public string sign { get; set; }
}
}

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

namespace api.Model.User
{
public class AddUserR
{
public int code { get; set; }
public string messages { get; set; }
}
}

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

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

using System.Linq;
namespace api.Bo
{
public class UserBo
{
public static Model.TestEntities.TestContext db = new Model.TestEntities.TestContext(); /// <summary>
/// 增加用户 --> 接口
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public static Model.User.AddUserR AddUser(Model.User.AddUserP model)
{
var r = new Model.User.AddUserR();
Model.TestEntities.User userSearch = (from u in db.User where u.Phone == model.phone select u).FirstOrDefault();
if (userSearch==null)
{
Model.TestEntities.User user = new Model.TestEntities.User();
user.Phone = model.phone;
user.Password = model.password;
user.NickName = model.nickName;
user.State = model.state;
db.User.Add(user);
int i = db.SaveChanges();
if (i > )
{
r.code = ;
r.messages = "数据插入成功";
}
else
{
r.code = ;
r.messages = "数据插入失败";
} }
else
{
r.code = ;
r.messages = "手机号已存在";
}
return r;
}
}
}

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

/// <summary>
/// 新增 --> 用户信息接口
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
public IActionResult AddUser(api.Model.User.AddUserP model)
{
var r =api.Bo.UserBo.AddUser(model);
return Ok(r);
}

接下来就是要进行接口测试了,这里我使用的是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. 微信小程序常用的方法(留着用)

    function zero_fill_hex(num, digits) { let s = num.toString(16); while (s.length < digits) s = &qu ...

  2. gdb调试工具常用命令 && kdb

    编译程序时需要加上-g,之后才能用gdb进行调试:gcc -g main.c -o main gdb中命令: 回车键:重复上一命令 (gdb)help:查看命令帮助,具体命令查询在gdb中输入help ...

  3. MTK Android Driver :Lcm

    MTK Android Driver :lcm 1.怎样新建一个LCD驱动 LCD模组主要包括LCD显示屏和驱动IC.比如LF040DNYB16a模组的驱动IC型号为NT35510.要在MTK6577 ...

  4. 搭建环境-Eclipse配置Tomcat创建Servlet总结

    Descripton:Web开发:Eclipse的下载与安装,Tomcat下载和结合Eclipse的使用,Eclipse使用Servlet[记录下总结下] 一.Eclipse的下载与安装 下载地址 注 ...

  5. "高亮显示"组件:<mark> —— 快应用组件库H-UI

     <import name="mark" src="../Common/ui/h-ui/text/c_tag_mark"></import& ...

  6. hadoop(四)centos7克隆|静态ip|机器名|映射关系|别名配置(完全分布式准备一)|6

    hadoop完全分布式准备工作 克隆默认基础虚拟机三台102/103/104目标:在win10主机上能连上这三台机器,三台机器之间可以互相ping通,用机器名也可ping通.基础虚拟机:创建了文件op ...

  7. D - Romantic

    The Sky is Sprite. The Birds is Fly in the Sky. The Wind is Wonderful. Blew Throw the Trees Trees ar ...

  8. win10下cuda安装以及利用anaconda安装pytorch-gpu过程

    安装环境:win10+2070super 1.Cuda的下载安装及配置 (1)测试本机独立显卡是否支持CUDA的安装,点击此处查询显卡是否在列表中. (2)查看自己是否能右键找到NVIDA控制面板,如 ...

  9. linux之cat 操作

    1.查看或创建 cat 1.txt #如果目录有这个文件则会打开查看,没有则会创建 2.压缩空白 cat 1.txt 我是第一行 我是第二 行 cat -bs 1.txt # 变成 cat 1.txt ...

  10. [PHP]$_SERVER参数详情

    来源:PHP中$_SERVER的详细参数与说明 $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关.$_SERVER['argv'] #传递给该脚 ...