0

linqでCRM2011ビュー(savedquery)を使用することは可能ですか?つまり、私はこのようなことをすることができます:

IEnumerable<Opportunity> GetOpportunites(CrmOrganizationServiceContext context, string viewName, Guid customerId)
{
    var view = context.CreateQuery<SavedQuery>().FirstOrDefault(q => q.Name == viewName);
    if(view!=null)
       return from Opportunity op in view
           where op.CustomerId.Id == customerId
           select op;
           return new List<Opportunity>();
}
4

1 に答える 1

1

確かにそうではありません。Servyが提案したように、試してみるとその理由がわかります。

SavedQueryビューを定義する2つのプロパティがあります- FetchXml(基になるクエリ)とLayoutXml(UIで返される列)。つまり、ビューがUIで返すデータではなく、UIでデータが返される方法の定義を返します。

ビューから返されると予想されるレコードを列挙するための最も簡単な方法は、FetchRequest直接使用することです。条件をXMLノードとして動的に挿入する必要がありますFetchXml

XMLフィルターセットを解析してから、Linqに適切に変換することもできますが、これは明らかにより困難であり、おそらく不必要にそうなります。

3番目のアプローチは、システムに静的ビューを作成することです。条件として、顧客を任意の顧客と等しく設定し、XML文字列で顧客IDを動的に変更します。

于 2012-10-18T14:29:04.580 に答える