シナリオ
現在、ac#Silverlightビジネスアプリケーションを使用しています。アプリケーションは、ADO.Netエンティティフレームワークとドメインサービスクラスを使用してAsp.netでホストされ、SQLサーバーデータベースとの間で読み取り/書き込みを行います。
セットアップ
クライアントUI
私の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()」を分離することを宣言しようとすると、そのうちの1つだけが機能します.......。
どうすればこれを回避できますか!?!