我有一个报告,我需要发送到我的react前端,需要很容易查询和搜索。问题是与目前的方法,我们需要拉所有整个数据库之前,执行查询,由于嵌套对象和其他因素。
为了显著加快该过程,我希望创建一个报告表/视图,以便在其他表发生更改时从中进行查询。
下面是模型的一个小示例:
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int TypeId { get; set; }
public ItemType Type { get; set; }
public int OrderId { get; set; }
public Order Order { get; set; }
}
public class ItemType
{
public int Id { get; set; }
public string Name { get; set; }
public List<Item> Items { get; set; }
}
public class Order
{
public int Id { get; set; }
public Customer Customer { get; set; }
public List<Item> Items { get; set; }
}
public class ItemReport
{
public string Name { get; set; }
public string Description { get; set; }
public string Type { get; set; }
public string Customer { get; set; }
public ItemReport(Item item)
{
Name = item.Name;
Description = item.Description;
Type = item.Type.Name;
Customer = item.Order.Customer.Name;
}
}
ItemReport是我用来发送到前端的模型,我读了很多关于无键实体和视图的书,但是我需要一些指导来把所有的部分放在一起。
目前,我们将从客户中提取所有Item和必填字段(如Name),并将其转换为ItemReport的IEnumerable列表,然后进行过滤/排序或搜索。
作为一个侧记,可能有其他的解决方案比我张贴的,我会开放以及。
我已经研究了这一点相当多,但我不认为我找到了正确的解决方案作为一个例子时,阅读的意见,他们提到他们如何不能插入或更新与EF核心。
1条答案
按热度按时间ztigrdn81#
这是一个简单的投影。在构造函数中传递
item
不是正确的方式,因为EF核心无法查看编译后的方法体。