.NET Core+WebApi+EF访问数据新增用户数据
新建一个.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访问数据新增用户数据的更多相关文章
- .net core webapi+EF Core
.net core webapi+EF Core 一.描述: EF Core必须下载.net core2.0版本 Micorsoft.EntityFrameworkCore:EF框架的核心包Micor ...
- ionic + asp.net core webapi + keycloak实现前后端用户认证和自动生成客户端代码
概述 本文使用ionic/angular开发网页前台,asp.net core webapi开发restful service,使用keycloak保护前台页面和后台服务,并且利用open api自动 ...
- .net core WebAPI+EF 动态接收前台json,并动态修改数据库
用API开发的人都知道,常用的后台接收参数就是建个DTO,然后前台把这个DTO传过来.后台再更新,例如如下例子: public async Task<IActionResult> PutM ...
- Asp.net Core WebApi 支持json/xml格式的数据返回
Asp.net core 在做webapi项目的时候,默认是只返回json格式的数据的,如果想要开启xml数据返回,需要在startup里配置如下: public void ConfigureServ ...
- .net core Webapi +EF
开发工具 Vs2017 +MSsqlsever 打开VS2017,新建web项目 点击确认,生成项目,在项目中增加文件夹Model,在Model中增加类TodoItem public class To ...
- UWP 应用获取各类系统、用户信息 (1) - 设备和系统的基本信息、应用包信息、用户数据账户信息和用户账户信息
应用开发中,开发者时常需要获取一些系统.用户信息用于数据统计遥测.问题反馈.用户识别等功能.本文旨在介绍在 Windows UWP 应用中获取一些常用系统.用户信息的方法.示例项目代码可参见 Gith ...
- JAVA用户数据输入
数据输入 首先需要导入扫描仪 然后声明扫描仪 输出输入提示 接收用户数据的数据 输出用户数据的数据 实例: import java.util.Scanner; //导入扫描仪 public class ...
- RTX服务端用户数据迁移说明
步骤一 最好在没有人使用RTX腾讯通的时候,这样你才能保证数据的实时同步;可以在服务器里面把RTX的相关服务器暂停再执行. 步骤二 进入RTX管理器用户数据----导出用户数据---还要把用户照片文件 ...
- asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行
1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加us ...
随机推荐
- Wireshark的使用(抓包、过滤器)
Wireshark的使用(抓包.过滤器) 听语音 分步阅读 Wireshark这个转包工具的简单实用 工具/原料 Wireshark软件包 方法/步骤 Wireshark是世界上最流行的网络分析工具. ...
- MySQL入门,第四部分,学会创建、删除表
一.列完整性约束 列完整性约束:是指对某一列设置的约束条件.该列上的数据必须满足.最常见的有: NOT NULL 该列值不能为空 NULL 该列值可以为空 UNIQUE 该列值不能存在相同 DEFA ...
- 第一天总结(while计数器+成绩大小+获取时间+猜拳大小)
#*_* coding:utf-8 *_*# while 先有一个计数器 input = 0# input = input('输入数字')while input < 5: input= inpu ...
- C++语言实现顺序栈
C++语言实现顺序栈 在写C语言实现顺序栈的时候,我已经向大家介绍了栈的特点以及介绍了栈的相关操作,并利用C语言实现了相关算法.在这里小编就不在继续给大家介绍了,需要温习的可以去我的博客看看.在这篇博 ...
- java中取得用户输入的方法
java中取得用户输入的方法 1.采用java.util.Scanner类 采用Scannerd的next()方法读取,测试代码如下: Scanner sc=new Scanner(System.in ...
- break与continue对比
- break 用来终止循环 - continue 用来跳出当前循环,继续下次循环 // 求1到100之间所有不能被3整除的整数的第一个大于2000的和 var sum = 0; for(var i= ...
- 基于linux或windows平台上的c/s简单通信
linux: tcpclient.cpp #include<iostream> #include<unistd.h> #include<sys/types.h> # ...
- Go语言讲解深拷贝与浅拷贝
我们在开发中会经常的把一个变量复制给另一个变量,那么这个过程,可能是深浅拷贝,那么今天帮大家区分一下这两个拷贝的区别和具体的区别. 一.概念 1.深拷贝(Deep Copy): 拷贝的是数据本身,创造 ...
- 如何使用python,才能像人民日报的“点亮”武汉景点
如何使用python,才能像人民日报的“点亮”武汉景点 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Allen P ...
- 原创hadoop2.6集群环境搭建
三台机器: Hmaster 172.168.2.3.Hslave1 172.168.2.4.Hslave2 172.168.2.6 JDK:1.8.49 OS:red hat 5.4 64 (由于后期 ...