.net core 2.1-----Sql Server数据库初体验

刚开始接触asp.net core,在学习的过程中遇到了一些小问题,在这里记录一下!

在我们项目的开发过程中,肯定会和数据库打交道,所以我尝试了一下用asp.net core链接数据库,并读取表中的数据(当然你必须保证有能访问的sql server数据库)!

首先,新建项目:ASP.NET Core Web应用程序

.net core 2.1-----Sql Server数据库初体验

点击“确定”,然后选择API,当然你也可以选择其他类型

.net core 2.1-----Sql Server数据库初体验

接下来,就开始我们的代码旅程了:

在"appsettings.json"中配置数据库链接字符串,代码段如下:

{
  "ConnectionStrings": {
    "SQLConnection": "Server=.;Database=CustomerDB;Trusted_Connection=True;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

  创建User对象,代码段如下:

public class User
    {
        public int ID { get; set; }
        public string UserName { get; set; }
        public string Password { get; set; }
    }

  创建DbContext,代码段如下:

public partial class CustomerDBContext : DbContext
    {
        public CustomerDBContext(DbContextOptions<CustomerDBContext> options)
            : base(options)
        {
        }
        public DbSet<User> User { get; set; }
    }

  接下来创建控制器,在这里我选择的是MVC控制器:

    [Route("api/[controller]")]
    [ApiController]
    public class UserController : Controller
    {
        private readonly CustomerDBContext _context;

        public UserController(CustomerDBContext context)
        {
            _context = context;
        }

        // GET: Users
        [HttpGet]
        public ActionResult<string> Index()
        {
            return (_context.User.ToList())[0].UserName;
        }
    }

  当然,还需要在Startup.cs中添加访问配置:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<CustomerDBContext>(options=>options.UseSqlServer(Configuration.GetConnectionString("SQLConnection")));

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

  启动程序,输入你的控制器地址就行了:

.net core 2.1-----Sql Server数据库初体验

在这个过程中遇见了一点问题,困扰了我挺久的,不过最后解决了

.net core 2.1-----Sql Server数据库初体验

后来找到了原因:

public DbSet<User> User { get; set; }这段代码之前我是这样写的
 public DbSet<User> Users { get; set; },而我数据库中的表名是User
所以一直都无法读取到表!希望以后遇到这样的问题不会再犯
上一篇:C#之通过图片地址下载图片


下一篇:IoC模式(依赖、依赖倒置、依赖注入、控制反转)