.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 ...
随机推荐
- 搭建DVWA Web渗透测试靶场
文章更新于:2020-04-13 按照惯例,需要的文件附上链接放在文首. 文件名:DVWA-1.9-2020.zip 文件大小:1.3 M 文件说明:这个是新版 v1.9 (其实是 v1.10开发版) ...
- MTK Android 回调机制[CallBack]
具体步骤: 一.建模 回调函数的关键是:将一段代码作为参数传递,而这段代码将会在某个时刻被执行 我理解的接口回调就是,我这个类实现了一个接口里的方法doSomething,然后注册到你这里,然后我就去 ...
- linux如何杀死指定进程
ps aux | grep '进程名称' sudo kill pid
- Python zipfile模块学习
转载自https://www.j4ml.com/t/15270 import zipfile import os from zipfile import ZipFile class ZipManage ...
- Spire.Cloud 私有化部署教程(二)- Ubuntu 18.04 系统
本教程主要介绍如何在Ubuntu 18.04系统上实现Spire.Cloud私有化部署.CentOS 7系统部署请参考 这篇教程. 详细步骤如下: 一.环境配置 1.关闭防火墙 1)首先查看防火墙状态 ...
- CVE-2019-0193 远程命令执行-漏洞复现
0x01 漏洞简介 Apache Solr 是一个开源的搜索服务器.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现.此次漏洞出现在Apache Solr的 ...
- 数组的连接和截取(contact和slice和splice)
<script> var arr1 = ["a","b","c"]; var arr2 = [1,2,3]; //concat把 ...
- 【Tool】Windows系统安装Maven依赖管理工具
安装Maven依赖管理工具 官网下载地址:http://maven.apache.org/download.cgi 系统环境要求: [JDK]Maven3.3版本+需要JDK1.7版本以上支持 [内存 ...
- Java读源码之CountDownLatch
前言 相信大家都挺熟悉 CountDownLatch 的,顾名思义就是一个栅栏,其主要作用是多线程环境下,让多个线程在栅栏门口等待,所有线程到齐后,栅栏打开程序继续执行. 案例 用一个最简单的案例引出 ...
- 常见web漏洞整理之进击吧xss!!!
XSS在线测试环境: http://xss-quiz.int21h.jp/ https://brutelogic.com.br/xss.php 这两个站对xss的理解很有帮助!!! 参考链接: htt ...