ASP.NET Core Web (MVC) 且没有 Startup.cs 文件,怎么配置?

1. 确认项目结构

确保你的项目包含以下关键文件和文件夹:

YourProject/
├── Controllers/
├── Models/
├── Views/
├── appsettings.json  
├── Program.cs  

 

2. 创建或修改 Program.cs

在 ASP.NET Core 3.0 及以上版本中,Program.cs 是应用程序的主要入口点。以下是配置 DbContext 的典型代码:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
 
public class Program 
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }
 
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

说明:

  • 如果你的项目没有 Startup.cs 文件,可以手动创建一个。
  • 确保 CreateWebHostBuilder 方法使用了 UseStartup<Startup>() 来指定启动类。

 

3. 创建 Startup.cs 文件

在项目根目录下创建 Startup.cs 文件,并添加以下内容:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using 你所创建的模型;
 
namespace 项目名字 
{
    public class Startup 
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
 
        public IConfiguration Configuration { get; }
 
        public void ConfigureServices(IServiceCollection services)
        {
            // 注册DbContext,并从配置中读取连接字符串 
            services.AddDbContext<VirOsContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
 
            // 添加Mvc服务 
            services.AddControllersWithViews();
        }
 
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else 
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }
 
            app.UseHttpsRedirection();
            app.UseStaticFiles();
 
            app.UseRouting();
 
            app.UseAuthorization();
 
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
}

说明:

  • ConfigureServices 方法用于注册服务,包括 DbContext
  • Configuration.GetConnectionString("DefaultConnection") 从 appsettings.json 中读取连接字符串。
  • AddControllersWithViews() 注册了 MVC 服务。

 

4. 修改 DbContext 类

确保你的 DbContext 类从配置中读取连接字符串,而不是硬编码:

using Microsoft.EntityFrameworkCore;
 
namespace 你的模型名字
{
    public class VirOsContext : DbContext 
    {
        public MVCContext(DbContextOptions<VirOsContext> options)
            : base(options)
        {
        }
 
        public DbSet<User> Users { get; set; }
        // 其他DbSet...
    }
}

 

说明:

  • 移除了 OnConfiguring 方法中的硬编码逻辑。
  • 使用依赖注入获取 DbContextOptions
5. 配置 appsettings.json

确保 appsettings.json 文件包含正确的连接字符串配置:

 

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=.;Database=数据库名字;User Id=用户;Password=密码;TrustServerCertificate=true;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

 

6. 安装必要的 NuGet 包

确保项目中安装了以下 NuGet 包:

dotnet add package Microsoft.EntityFrameworkCore --version 8.0.13 
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 8.0.13 
dotnet add package Microsoft.EntityFrameworkCore.Tools --version 8.0.13 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值