.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 ...
随机推荐
- Scrapy-01-追踪爬取
目的:利用scrapy完成盗墓笔记小说的抓取 创建项目: scrapy startproject books cd books scrapy genspider dmbj 编写p ...
- 让 .NET 轻松构建中间件模式代码
让 .NET 轻松构建中间件模式代码 Intro 在 asp.net core 中中间件的设计令人叹为观止,如此高大上的设计何不集成到自己的代码里呢. 于是就有了封装了一个简单通用的中间件模板的想法, ...
- 2017蓝桥杯取位数(C++B组)
题目: 标题:取数位求1个整数的第k位数字有很多种方法.以下的方法就是一种.// 求x用10进制表示时的数位长度 int len(int x){ if(x<10) return 1; retur ...
- Java Random 随机数
package myrandom; import java.util.Random; /* * Random:用于产生随机数 * * 使用步骤: * A:导包 * import java.util.R ...
- 【python实现卷积神经网络】池化层实现
代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...
- 【three.js第五课】光线的添加和感光材料
材料分类: MeshBasicMaterial:基础网孔材料,一个以简单着色(平面或线框)方式来绘制几何形状的材料.MeshLambertMaterial:兰伯特网孔材料,一种非发光材料(兰伯特)的表 ...
- 浅谈Vector
浅谈Vector 在之前的文章中,我们已经说过线程不安全的ArrayList和LinkedList,今天我们来讲讲一个线程安全的列表容器,他就是Vector,他的底层和ArrayList一样使用数组来 ...
- 泛型方法或泛型类中的方法是内部调用、PInvoke 或是在 COM 导入类中定义的。
泛型基类中引用Api函数定义时static extern,在子类中会提示: 未处理TypeLoadException 泛型方法或泛型类中的方法是内部调用.PInvoke 或是在 COM 导入类中定义的 ...
- python调用小豆机器人实现自己的机器人!
大家好,人工智能是不是很酷呢? 今天我们用python调用小豆机器人实现自己的机器人(可以结合往期的语音识别更酷哦) 好,废话不多说直接上代码 import requests i=input(&quo ...
- 详解 DatagramSocket类
(请观看本人博文 -- <详解 网络编程>) DatagramSocket 概述: 这类代表一个发送和接收数据包的插座. 该类是遵循 UDP协议 实现的一个Socket类. 数据报套接字发 ...