简体   繁体   中英

How to read tables in asp.net core, with database first approach

So, I created a new database and a table in SQLEXPRESS, I also filled tables with random information, and I used key word in Nuget console -> Scaffold-DbContext "Server=.\SQLExpress;Database=testdb;Trusted_Connection=True;"Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models. The Program successfully created models, so I just wanted to output the information, so I created a new apicontroller, with [HttpGet], and injected the created testdbcontext which was created to get information about the database tables, so In a word I created the following method.

 [HttpGet("All")]

    public IActionResult GetAll() 
    {
        var obj = _db.Mobiletables.ToList();

        return Ok(obj);
    }

However, when I go to localhost/home/all I get the following error在此处输入图像描述 What am I doing wrong, I just want to read information from the database to api, using DB First Approach method.

Your controller code looks correct, but based off of your comment of "I have not added anything in startup services" you are missing something like this in Startup.cs (specifically the AddDbContext line):

    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

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

            services.AddControllersWithViews();
        }

https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro?view=aspnetcore-5.0

You still need to set up your context so that it can be used when it is injected.

Your _db need to be initialized in your class constructor

public YOURController(YOURDbContext con)
{
    _db= con;
}

If you Connection String is in appsettings.json add this to startup.cs inside ConfigureServices

services.AddDbContext<YOURDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("connstr")));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM