刚开始接触asp.net core,在学习的过程中遇到了一些小问题,在这里记录一下!
在我们项目的开发过程中,肯定会和数据库打交道,所以我尝试了一下用asp.net core链接数据库,并读取表中的数据(当然你必须保证有能访问的sql server数据库)!
首先,新建项目:ASP.NET Core Web应用程序
点击“确定”,然后选择API,当然你也可以选择其他类型
接下来,就开始我们的代码旅程了:
在"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);
}
启动程序,输入你的控制器地址就行了:
在这个过程中遇见了一点问题,困扰了我挺久的,不过最后解决了
后来找到了原因:
public DbSet<User> User { get; set; }这段代码之前我是这样写的
public DbSet<User> Users { get; set; },而我数据库中的表名是User
所以一直都无法读取到表!希望以后遇到这样的问题不会再犯