我正在使用带有实体框架和自我跟踪实体的 WPF 进行个人项目。我有一个 WCF Web 服务,它公开了一些用于 CRUD 操作的方法。今天我决定做一些测试,看看这个服务实际上会发生什么,即使我预料到会发生这样的事情,我真的很失望。问题在于,对于仅针对一个对象的简单更新(或删除)操作 - 假设我向服务器发送整个对象图的类别,包括其所有父类别、它们的项目、子类别及其项目等。我我的案例是一个 170 KB 的 xml 文件,位于一个非常小的数据库(2 个主要类别,总共大约 20 个和大约 60 个项目)。我无法想象如果我有一个非常大的数据库会发生什么。
我试图用谷歌搜索一些关于 STE 流量优化的文章,但没有成功,所以我决定在这里询问是否有人做过类似的事情,知道一些好的做法等。
我提出的一种可能方法是通过更多服务调用来获取每个对象所需的数据:
return context.Categories.ToList();//only the categories
...
return context.Items.ToList();//only the items
代替:
return context.Categories.Include("Items").ToList();
这样,类别和项目将被分开,并且在进行更改或删除某些对象时,通过网络发送的数据会更少。
你们中是否有人遇到过类似的问题,您是如何解决的或者您是如何解决的?