[英]DataSet Parent-Child Nested Relation in Blazor
blazor有DataSet父子嵌套关系吗? 如果是,如何申请或使用它?
谢谢。
我想做的是构建类似嵌套中继器的东西,但在 blazor
在最简单的情况下,您可能有一个数据库表对,一个公司和许多员工
class Company{
int Id {get;set;}
string Name {get;set;}
ICollection<Employee> Employees {get;set;}
};
class Employee{
int Id {get;set;}
string Name {get;set;}
int CompanyId {get;set;}
Company Company {get;set;}
};
您会让 EFC 为您下载它们并将它们固定到公司经理和相关员工详细信息中
override async Task OnInitializedAsync(){
var context = new YourdbContext();
_companies = context.Companies.Include(c => c.Employees).ToListAsync();
}
这将在 razor 页面上
@page "someurl/here"
@foreach(var c in _companies){
<h3>@c.Name</h3>
@foreach(var e in c.Employees){
<div>@e.Name</div>
}
}
@code{
List<Company> _companies;
//oninitialized here
}
这不是一个生产级示例。 在时间充足的时候,我相信你会填写更多,也许 map 数据库实体来查看模型并枚举那些,为每个员工和公司制作组件等。
..但作为基本转储,我们使用像 Entity Framework Core 这样的东西,它了解我们的对象之间的关系以及我们的表之间的关系,并将下载所有公司和所有员工,并弄清楚哪个与之相关。
以前是一个数据关系,现在是一个 object 父级,里面有一个 object 个子级的列表。 如果您修改任何 object,EFC 会检测到它,并将保留更改(如 DataRow 行 state 和适配器)。 如果您清除子集合或删除父集合,EFC 将按照级联删除行为编码的方式处理相关数据,就像数据关系用于
延伸阅读
如果您计划注入上下文,请阅读https://learn.microsoft.com/en-us/as.net/core/blazor/blazor-server-ef-core?view=as.netcore-6.0 。
如果您想降低启动和运行 EFC 的门槛,我真的会考虑先创建数据库,安装 EFCorePowerTools 并将数据库反向工程到您的代码中; 什么是快速“制作两个表、5 列、一个数据库图并在它们之间拖动关系,就像我们在数据集中所做的那样”然后变成一个完全设置的上下文,实体类和属性都在几秒钟内完成; 无需输入 c#
Henk 提供了一个好博客的链接,那里有大量组件库,其中包含表格控件,可以执行时髦的“单击行以显示子项”(我使用 MudBlazor 和 Blazorise)..
..这只是为了成为一个绝对的骨架“这就是我们如何表现得像一个中继器;我们放置循环来重复发出标记,上下文相关数据改变循环的每次传递”向您介绍我们如何可能的概念代码在 razor
我与提到的任何软件都没有任何关系
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.