刚开始接触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
所以一直都无法读取到表!希望以后遇到这样的问题不会再犯