情景
目前我有 ac# silverlight 商业应用程序。该应用程序托管在 Asp.net 中,使用 ADO.Net 实体框架和域服务类来读取/写入我的 sql 服务器数据库。
设置
客户端界面
在我的 silverlight 客户端界面中,我有一个自动完成框,它使用查询来获取与搜索相关的项目列表。该查询在我的域服务类中,如下所示:
public IQueryable<Status> GetStatus()
{
var q = (from job in Context.Job
select job.Status).Distinct()
.Select(deliveryState => new Status
{
DeliveryState = deliveryState,
Count = Context.Job.Count
(job => job.Status.Trim() == deliveryState.Trim())
});
q = q.Where(job => job.DeliveryState != null);
return q;
}
代码背后
然后在silverlight客户端接口xaml页面后面的代码中,我使用以下代码在构造函数中加载查询:
var context = dds.DomainContext as InmZenDomainContext;
statusFilterBox.ItemsSource = context.Status;
context.Load(context.GetStatusQuery(), (lo) =>
{
//just to show you how to load..
//new ErrorWindow("Loaded.." + lo.Entities.Count()).Show();
}, null);
问题
我遇到的问题是,如果我将另一个自动完成框添加到我的客户端界面,以及另一个 Get 查询以执行不同类型的搜索,现在会发生什么:
public IQueryable<ShortCode> GetShortCode()
{
var q = (from job in Context.Job
select job.ShortCode).Distinct()
.Select(name => new ShortCode
{
Name = name,
Count = Context.Job.Count
(job => job.ShortCode.Trim() == name.Trim())
});
q = q.Where(job => job.Name != null);
return q;
}
由于“Context.Load()”函数不支持加载多个查询,因此出现此问题。另外,如果我尝试声明将“Context.Load()”分开-其中只有一个有效........
我怎么能绕过这个!?!