ASP.NET Core WebApi с SQL Server и EFCore 2 - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь создать свой первый .NET Core Web Api с SQL Server и Entity Framework Core 2, но когда я вызываю конечную точку из браузера во время сборки проекта, я ничего не получаю.Он всегда остается на странице запуска с надписью «Hello World».

Как правильно получить данные из Rest Api?

Во-первых, мой класс модели:

public class Project
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
}

С DbContext:

public class TaskManagerDbContext : DbContext
{
    public TaskManagerDbContext(DbContextOptions<TaskManagerDbContext> options) : base(options) { }

    public DbSet<Project> Projects { get; set; }
}

Затем я жестко закодировал две записи в базу данных:

enter image description here

Я сгенерировал ProjectsController, создав леса API с R / W на основе Entity Framework.Функция get выглядит следующим образом (я думаю, что нет смысла показывать весь контроллер, потому что он сгенерирован скаффолдом):

[Route("api/[controller]")]
[ApiController]
public class ProjectsController : ControllerBase
{
    private readonly TaskManagerDbContext _context;

    public ProjectsController(TaskManagerDbContext context)
    {
        _context = context;
    }

    // GET: api/Projects
    [HttpGet]
    public IEnumerable<Project> GetProjects()
    {
        return _context.Projects;
    }

    // GET: api/Projects/5
    [HttpGet("{id}")]
    public async Task<IActionResult> GetProject([FromRoute] int id)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        var project = await _context.Projects.FindAsync(id);

        if (project == null)
        {
            return NotFound();
        }

        return Ok(project);
    }
}

Наконец, мой Startup.cs:

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

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        services.AddDbContext<TaskManagerDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Hello World!");
        });

        app.UseHttpsRedirection();
        app.UseMvc();
    }
}

Вопрос в том, какие изменения необходимы для получения данных из моей базы данных по конечным точкам API?Сейчас, когда я пытаюсь вызвать конечную точку, она всегда остается на странице «Привет, мир».

enter image description here

Моя строка подключения находится в appsettings.json файл в каталоге проекта.

Спасибо за любой совет!

1 Ответ

0 голосов
/ 13 декабря 2018

У вас осталось немного остатка от шаблона для пустого основного проекта asp.

Просто удалите весь этот блок, потому что он вам не нужен:

app.Run(async (context) =>
{
    await context.Response.WriteAsync("Hello World!");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...