从一对多关系数据库查询到数据表



我刚开始学习SQL,并试图让我的第一个示例发挥作用。我有两张一对多关系表:

public class Customer
{
public Guid Id { get; set; }
public string CompanyName { get; set; }
public string Address { get; set; }
[JsonIgnore]
public virtual ICollection<Project> Projects { get; set; }
}
public class Project
{
public Guid Id { get; set; }
public string Name { get; set; }
public string ProjectType { get; set; }
public Guid CustomerId { get; set; }
public Customer Customer { get; set; }
}

然后我通过APIProjectsController:执行以下命令

[HttpGet]
public async Task<IActionResult> Get()
{
System.Collections.Generic.List<Project> projects = 
await _context.Projects.Include(d => d.Customer).ToListAsync();
return Ok(projects);
}

我正在获取

private IEnumerable<Project> ProjectsList { get; set; } = new List<Project>();

在剃须刀页上,带有

this.ProjectsList = await this.HttpClient.GetFromJsonAsync<IEnumerable<Project>>("api/Projects");

我已经用调试器检查了ProjectsList的数据结构,它看起来很好。

然而:Razor页面表(两列"项目名称"one_answers"客户名称"(:

<Table DataSource="ProjectsList" TItem="Project">
<Column TData="string"
Title="Name"
@bind-Field="context.Name"
SorterCompare="@((a,b)=> string.Compare(a,b))"
SortDirections="new[] { SortDirection.Descending }"
Filterable />
<Column TData="string"
@bind-Field="context.Customer.CompanyName"
SorterCompare="@((a,b)=> string.Compare(a,b))"
SortDirections="new[] { SortDirection.Descending }"
Filterable />
</Table>

我得到一个对象的异常没有设置为对象的实例。我想这是因为context.Customer.CompanyName,其中Customer没有初始化?

首先,我有一个问题,我应该重做我的Project模型,并在其中添加类型为字符串CompanyName的额外列,还是有其他方法可以在razor页面上显示数据?

如果…我应该在Project.cs中添加额外的列,如何在其中使用linq查询数据?

首先,尝试以下操作,如果出现错误,请在此处发布其文本:

public Customer Customer { get; set; } = new Customer {};

相关内容

  • 没有找到相关文章

最新更新