摘要:【SilverLight】存取Domain Service数据完成后的动作
刚开始学会用Domain Service存取数据时,我兴冲冲的写了一支小程序来测试:
public MainPage()
{
InitializeComponent();
Web.WCFDATA db = new Web.WCFDATA();
var data = db.Load(db.GetMsgQuery()).Entities;
MessageBox.Show(data.Count().ToString());
}
结果MessageBox秀出来的是0,这一点也不意外,我们都知道SilverLight必须依靠Domain Service来存取数据,且是以异步的方式存取,数据还没有读取完,MessageBox已经先执行了,所以结果会是0。
这个结果告诉我们,撰写SilverLight读取数据时,必须特别注意异步这个点,否则会出现意想不到的结果。
如果想在数据读取完成后,秀出共有几笔数据,上面的程序必须改写,原本程序用的Load方法并没有侦测数据读取是否完成,我们必须用其他的方法,最后我找到了另一个Load方法,MSDN定义如下:
public LoadOperation Load(
EntityQuery query,
Action callback,
Object userState
)
where TEntity : Entity
其中第二个参数是一个Action
public MainPage()
{
InitializeComponent();
Web.WCFDATA db = new Web.WCFDATA();
db.Load(db.GetMsgQuery(), ShowMsg, null);
}
public void ShowMsg(LoadOperation m)
{
MessageBox.Show(m.Entities.Count().ToString());
}
原本我们是将db.Load的结果指定给data变量,然后去秀出data的笔数,修改后的程序我们新增一个符合Action
原文:大专栏 【SilverLight】存取Domain Service数据完成后的动作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。