gpt4 book ai didi

Silverlight 数据访问

转载 作者:行者123 更新时间:2023-12-03 01:09:35 24 4
gpt4 key购买 nike

我正在开发一个 silverlight 报告工具,它可以根据客户数据绘制各种精美的图表。我现在遇到的问题是将我需要的所有数据从数据库获取到我的 silverlight 应用程序的好方法。

到目前为止,我有一个 Web 服务,它将我的数据分成 1000 个组,然后将它们发送回给我。我需要 3000 多条记录,这需要对 Web 服务进行大约 4 次调用,每次调用 2 秒。不用说,它比我想要的要慢。

我目前已经设置了这些:


binding.MaxBufferSize = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;

我确信有人有更好的方法来更快地获取数据库数据。至少,这是一种可以让我一次性获取所有数据的方法。

最佳答案

(部分基于 earlier question )听起来带宽是问题所在;我会认真考虑尝试 protobuf-net; Google 设计的“ Protocol Buffer ”格式非常高效(比默认的 DataContractSerializer 高效得多),并且可以在 .NET 中非常方便地使用。非常适合与带宽相关的场景。唯一的问题是,目前 WCF Hook 无法与 Silverlight 一起使用(因此您不能只添加属性/配置条目),但您可以将数据作为 byte[] 传递。很容易(只需从方法返回 byte[] )。

例如;如果您有如下记录:

[ProtoContract]
public class MyRecord {
[ProtoMember(1)]
public int Id {get;set;}

[ProtoMember(2)]
public string Description {get;set;}

// etc
}

和一个List<MyRecord> ,那么您应该能够使用:

byte[] result;
using(MemoryStream ms = new MemoryStream()) {
Serializer.Serialize(ms, list); // or maybe (list, ms) ;-p
result = ms.ToArray();
}

我还看到有人返回 Stream在操作合约上(而不是 byte[] ) - 这似乎与 MTOM 配合得更好(提示:如果可能的话,在传递原始二进制文件时,您肯定希望启用 MTOM)。

关于Silverlight 数据访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1462452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com