maui blazor 混合应用程序 (.NET 8.0) 中的 Razor 组件库缺少添加新的脚手架项目

问题描述 投票:0回答:1

我按照 Microsoft 提供的 setupsample app 来运行 maui 和 blazor Web 混合应用程序。

我想向应用程序添加数据库和 EF 核心,因此我按照本教程的前 4 分钟进行操作,希望它能起作用。

我向

MauiBlazorWeb.shared
Razor 组件库 (RCL) 添加了一个模型,如下所示 Employee.cs。然后我将 NuGet 包
EFcore, EFcore.design, EFcore.SqlServer
安装到共享 RCL。但是,右键单击“组件”文件夹后,没有“添加新脚手架项目”选项 图片

是否有问题,为什么共享 RCL 中没有“添加新的脚手架项目”?

我寻找了一些解决方案,但设置是在 maui 或 blazor 上完成的,但不是混合方法。我还尝试添加 nuget 包

Microsoft.DotNet.Scaffolding.Shared
但没有成功。

visual studio

c# .net entity-framework-core blazor scaffolding
1个回答
0
投票

您不想将数据库调用放在共享项目中。 Maui 应用程序的目标是允许用户将应用程序下载到他们的设备上并运行它(我们称之为客户端应用程序)。直接从客户端应用程序调用数据库并不是良好的安全实践。相反,Maui 应用程序应调用 Web 应用程序中的 API 来获取任何数据。

所以在这种情况下,请将 EF 相关项放入您的 Web 项目中。您可以将模型移动到共享项目;但是,最好的做法是将它们保留在 Web 应用程序中。然后在共享项目中创建类的 POCO 版本。 POCO 版本没有导航,并删除了您不希望客户端知道的任何字段。 POCO 版本还可以使用数据注释进行字段表单验证。然后在 Web 和 Maui UI 端使用 POCO 版本。

顺便说一句,这个新模板刚刚推出。我正在尝试让 ASP.NET Core Identity 来使用它。一天后,到目前为止还没有运气。希望很快有人会发布教程。

希望这有帮助吗?

© www.soinside.com 2019 - 2024. All rights reserved.