.NET Core+WebApi+EF访问数据新增用户数据
CR7Ronaldo 人气:3新建一个.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 > 0) { r.code = 1; r.messages = "数据插入成功"; } else { r.code = 0; r.messages = "数据插入失败"; } } else { r.code = 0; 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先上手玩玩,如果以上代码存在误区请注明,一起学习。谢谢!
加载全部内容