gpt4 book ai didi

entity-framework-core - 如何访问服务器端 Blazor 组件中的 Entity Framework DbContext 实体

转载 作者:行者123 更新时间:2023-12-02 03:01:48 26 4
gpt4 key购买 nike

我是 .NET Core 和 Blazor 的新手,主要拥有 WebForms 和 MVC 经验。

我发现的所有 Blazor 文档和教程都使用单独的 API 项目,并通过 HttpClient 和 Json 序列化/反序列化访问数据。我明白为什么这对于使用 WebAssembly 的客户端 Blazor 是必要的,但对于使用 SignalR 的服务器端 Blazor 来说,使用 Entity Framework 直接从组件的 .razor 文件访问数据库的最佳方法是什么数据库上下文?

例如,在 MVC Controller 中,您可以执行以下操作:

private ApplicationDbContext context = new ApplicationDbContext();

然后通过执行以下操作来查询数据:

var things = context.Things.Where(t => t.ThingAttributes == something);

在使用服务器端 Blazor 中的组件时,是否有一种方法如此干净且高效?

对于这个问题的广泛性,我们深表歉意,请随时向我指出我应该已经阅读过的博客、文档或教程。谢谢!

最佳答案

您所说的 Controller 应该变成一个服务类,它从数据库检索数据,并将其传递给调用方法。您应该将此服务添加到 Startup 类中的 DI 容器中。要在您的组件中使用此服务,您应该像这样注入(inject)它:

@inject DataService myDataService

我认为 Blazor 模板附带了如何定义此类服务并在组件中使用它的示例。

Here's a link Blazor 团队提供的示例如何创建服务以及如何在组件中使用它。该服务不使用 Entity Framework ,但这是非常小的事情,我相信您会处理的。

关于entity-framework-core - 如何访问服务器端 Blazor 组件中的 Entity Framework DbContext 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59805446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com