我正在使用实体框架和自我跟踪实体使用WPF的个人项目。我有一个WCF Web服务,它为CRUD操作提供了一些方法。今天我决定做一些测试,看看究竟是通过这项服务传播的,尽管我期望这样的事情,但我真的很失望。问题是,对于一个对象的简单更新(或删除)操作 - 可以说类别我向服务器发送整个对象图,包括其所有父类别,其项目,子类别及其项目等。我的情况是一个非常小的数据库(2个主要类别,大约20个总计和大约60个项目)上的170 KB xml文件。我无法想象如果我有一个非常大的数据库会发生什么。自我跟踪实体流量优化
我试图谷歌关于与STE流量优化的一些文章,但没有成功,所以我决定问这里是否有人做过类似的事情,知道一些好的做法等
一个可能的方法我想出了与更多的服务电话获得我每个对象所需要的数据:
return context.Categories.ToList();//only the categories
...
return context.Items.ToList();//only the items
相反的:
return context.Categories.Include("Items").ToList();
这样的CATEG ories和项目将被分开,并且在更改或删除某些对象时,通过线路发送的数据将会更少。
有没有人遇到类似的问题,您是如何解决这个问题的?或者您是否解决了这个问题?
为什么不使用自我跟踪实体的一个原因。我认为它有一些开销,因为原始值可能通过电线传输。 – yonexbat
是的,他们是。我还认为,就优化和创建严重的应用程序而言,使用ADO.NET或其他技术要好得多,因为您无需发送兆字节数据即可更改单个字母,无论其他好处如何,Entity Framework为您提供。他们对我来说(可能不仅仅是我)不足以让我闭上眼睛。 –