以前のリビジョンの文書です
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using MvcMovie.Models; namespace MvcMovie.Data { public class MvcMovieContext : DbContext { public MvcMovieContext (DbContextOptions<MvcMovieContext> options) : base(options) { } public MvcMovieContext(DbContextOptionsBuilder contextOptions) { } public DbSet<MvcMovie.Models.Movie> Movie { get; set; } = default!; public DbSet<MvcMovie.Models.Publish> Publish { get; set; } } }
var builder = WebApplication.CreateBuilder(args); builder.Services.AddDbContext<MvcMovieContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext") ?? throw new InvalidOperationException("Connection string 'MvcMovieContext' not found.")));
namespace MvcMovie.Models { public class Publish { public int Id { get; set; } public string Title { get; set; } } }
using Microsoft.AspNetCore.Mvc; namespace MvcMovie.Models { public interface IPublishRepository { Task<List<Publish>> ToListAsync(); } }
using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using MvcMovie.Data; namespace MvcMovie.Models { public class PubRepository : IPublishRepository { private MvcMovieContext _context; public PubRepository(MvcMovieContext context) { _context = context; } public async Task<List<Publish>> ToListAsync() { return (List<Publish>)await _context.Publish.ToListAsync(); } } }
using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.Extensions.Options; using MvcMovie.Data; using MvcMovie.Models; namespace MvcMovie.Controllers { public class PublishesController : Controller { private IPublishRepository pubrepository; private MvcMovieContext _context; public PublishesController(MvcMovieContext context) { pubrepository = new PubRepository(context); } public async Task<IActionResult> Index() { return View(await pubrepository.ToListAsync()); } } }