• .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 > 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先上手玩玩,如果以上代码存在误区请注明,一起学习。谢谢!

  • 相关阅读:
    监督学习——决策树理论与实践(上):分类决策树
    监督学习——随机梯度下降算法(sgd)和批梯度下降算法(bgd)
    Protobuf 从入门到实战
    Android 广播机制
    Java 并发编程——volatile/synchronized
    Android 手势识别—缩放
    Jquery 使用和Jquery选择器
    初识jQuery
    正则表达式
    正则表达式
  • 原文地址:https://www.cnblogs.com/hcyesdo/p/12821061.html
Copyright © 2020-2023  润新知