Dan*_*ray 5 silverlight wcf-ria-services
我有一个Silverlight 4应用程序,它使用WCF RIA服务从数据库中提取实体.这些数据对象相当简单,只有几个字段,但其中一个字段包含任意大小的二进制数据.应用程序需要在用户登录后基本上尽快访问此数据,在列表中显示,启用选择等.
我的问题是由于这些数据的大小,加载时间是不可接受的,并且可以接近RIA服务的默认超时.
我想以某种方式将对象部分加载到我的本地数据上下文中,以便我有ID,名称等但不是二进制数据.然后我可以在稍后(即实际需要时)填充我需要显示的那些对象的二进制字段.
有关如何实现这一目标的任何建议都将受到欢迎.
在编写这个问题时我发现的另一种方法(这种情况经常发生的情况是什么?!)是我可以将二进制数据移动到与原始记录1:1连接的单独数据库表中,这样我就可以使用RIA的延迟加载该二进制数据.
再次..评论欢迎!谢谢.
不要更改您的数据库.更改您的交付方式.
为您的快速项目列表创建单独的WCF RIA服务,并使用POCO(普通旧clr对象)向下发送所需数据的摘要.然后,当你为大家伙做好准备时,你可以从POCO的数据中一次下载一个.
Brad Abrams和Nikhil Kothari已经讨论过使用POCO一段时间了.查看他们的MIX演讲以获取更多信息.
为快速列表项创建新服务:
public class QuickListService : LinqToEntitiesDomainService<MyEntities>
{
private IQueryable<QuickList> GetQuickList()
{
return from t in ObjectContext.Table
select new QuickList
{
ID = t.ID,
Title = t.Title
};
}
}
Run Code Online (Sandbox Code Playgroud)
您的POCO只是服务器上的一个对象,如下所示:
public class QuickList
{
public string Title;
public long ID;
}
Run Code Online (Sandbox Code Playgroud)
祝好运!
ps Nikhil的BookClub应用程序做了很多.如果您需要查看真正的应用程序,请下载他的应用程序:http://www.nikhilk.net/Content/Presentations/MIX10/BookClub.zip
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |