You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在ASP.NET Core项目中配置Entity Framework?求助教程相关问题

嘿,刚接触ASP.NET Core踩点小坑很正常~你提到的project.json其实是ASP.NET Core早期版本的配置文件,现在早就换成.csproj啦,我来一步步带你搞定用EF Core实现数据库查询和页面展示的完整流程:

1. 安装Entity Framework Core对应包

首先得根据你的数据库类型安装EF Core的适配包,比如常用的SQL Server,你可以选下面一种方式安装:

  • 包管理器控制台:执行 Install-Package Microsoft.EntityFrameworkCore.SqlServer
  • .NET CLI终端:执行 dotnet add package Microsoft.EntityFrameworkCore.SqlServer
    如果是其他数据库(比如SQLite、MySQL),替换成对应的包即可,比如Microsoft.EntityFrameworkCore.Sqlite
2. 配置数据库连接字符串

打开项目根目录的appsettings.json,添加连接字符串配置:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourTestDB;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  // 其他原有配置...
}

YourTestDB换成你想要的数据库名称就行。

3. 创建数据模型与DbContext

先定义一个简单的数据模型(比如我们做用户列表查询):

// 可以放在Models/User.cs文件中
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
}

然后创建DbContext类,它是EF Core和数据库交互的核心:

// 可以放在Data/AppDbContext.cs文件中
using Microsoft.EntityFrameworkCore;

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

    // 声明要操作的数据库表对应的DbSet
    public DbSet<User> Users { get; set; }
}
4. 在Program.cs中注册DbContext服务

打开Program.cs,把AppDbContext注入到依赖注入容器中:

var builder = WebApplication.CreateBuilder(args);

// 注册DbContext,指定用SQL Server和我们配置的连接字符串
builder.Services.AddDbContext<AppDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

// 添加MVC服务(如果用Razor Pages的话换成AddRazorPages())
builder.Services.AddControllersWithViews();

var app = builder.Build();

// 下面是默认的中间件配置,保留原有内容即可
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();
5. 编写控制器查询数据并传递给视图

比如在HomeController中注入AppDbContext,查询数据后传给视图:

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

public class HomeController : Controller
{
    private readonly AppDbContext _dbContext;

    // 通过构造函数注入DbContext
    public HomeController(AppDbContext dbContext)
    {
        _dbContext = dbContext;
    }

    public async Task<IActionResult> Index()
    {
        // 异步查询所有用户数据
        var userList = await _dbContext.Users.ToListAsync();
        // 把数据传递给视图
        return View(userList);
    }
}

然后在Views/Home目录下创建Index.cshtml视图,展示数据:

@model List<User>

<h2>用户列表</h2>

<table class="table table-striped">
    <thead>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>邮箱</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var user in Model)
        {
            <tr>
                <td>@user.Id</td>
                <td>@user.Name</td>
                <td>@user.Email</td>
            </tr>
        }
    </tbody>
</table>
6. 初始化数据库(可选)

如果你的数据库还没创建,可以用EF Core的迁移功能自动生成数据库和表:

  • 包管理器控制台:先执行 Add-Migration InitialCreate 创建迁移文件,再执行 Update-Database 应用迁移到数据库
  • .NET CLI终端:先执行 dotnet ef migrations add InitialCreate,再执行 dotnet ef database update
    之后你可以手动给Users表添加一些测试数据,运行项目就能看到页面展示的结果啦~

内容的提问来源于stack exchange,提问作者loremIpsum1771

火山引擎 最新活动