Lightswitch很慢,ADO.NET实体框架/域服务/ WCF RIA服务

时间:2013-04-23 12:54:18

标签: entity-framework ado.net wcf-ria-services visual-studio-lightswitch domainservices

我正在使用外部SQL Server 2008在VS2012中开发Lighswitch应用程序。我正在使用WCF RIA服务来获取我的数据,使用以下技术:http://www.c-sharpcorner.com/UploadFile/raj1979/how-to-use-wcf-ria-service-in-lightswitch-2012/

我的主表包含一些包含静态数据的列和包含外键的约5列。静态数据列立即加载,但所有外来属性需要3-5秒才能在大约100行的屏幕上加载。这是不可接受的..

enter image description here

对我来说,问题是我不知道瓶颈在哪里。我可以开始寻找任何想法吗?到目前为止,我唯一能想到的是我的ADO.NET模型使用了Lazy Loading,而且确实如此。

所有外键属性只有两列带有PK和一些文本,所以它们不是数据重。

感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:2)

我不知道这是否是您速度问题的确切答案,但您引用的那篇文章建议您添加 ADO.NET数据模型包含 RIA服务的类库。

绝对没有理由生成第二数据模型,因为LightSwitch 已经在您附加外部数据源(您的SQL Server数据库)时会生成一个。你也可以重复使用它。 EF数据模型需要时间来构建,所以我认为使用两个EF数据模型可以解释您遇到的缓慢,但它也可能完全不同。

看看这篇文章(最初的RIA Service / LightSwitch文章,并且仍然是最好的),在其他几种技术中,Eric将向您展示如何重用LightSwitch为您的数据源创建的数据模型

How Do I: Display a Chart Built On Aggregated Data

在本文中,创建RIA服务以专门聚合数据以显示在图表中,但您可以在其中执行任何操作。它不必聚合数据。我广泛使用带有附加数据源(SQL数据库)的RIA服务,为列表,报告以及组合框的查找数据提供数据。

答案 1 :(得分:-3)

我几乎是这种新艺术的开端,但正如严在他的书中说的那样,灯光开关被引导到屏幕上。我敢问你是否需要在你的屏幕上有100行。你甚至都看不到它们。如果将该数字减少到20,则会将等待时间减少到1/5。我遇到了同样的问题,现在我在屏幕上使用尽可能少的行数。为了能够在不影响业务性能的情况下实现这一点,我选择打开具有最大参数数量的屏幕,而不是必需的,我打开它时会发送这些参数。如果其中一个参数不是选项,我将其称为“Nothing”。因此,我可以在网格中拥有最少的行数,填写屏幕的紫红色,程序性能和业务性能。