本文整理汇总了C#中Remotion.Linq.QueryModel.IsIdentityQuery方法的典型用法代码示例。如果您正苦于以下问题:C# QueryModel.IsIdentityQuery方法的具体用法?C# QueryModel.IsIdentityQuery怎么用?C# QueryModel.IsIdentityQuery使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Remotion.Linq.QueryModel
的用法示例。
在下文中一共展示了QueryModel.IsIdentityQuery方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VisitQueryModelNoCache
/// <summary>
/// Turn a query model into code.
/// </summary>
/// <param name="queryModel"></param>
private void VisitQueryModelNoCache(QueryModel queryModel)
{
// Cache the referenced query expressions and restore them at the end.
var cachedReferencedQS = _codeContext.GetAndResetQuerySourceLookups();
// Protect against all returns...
try
{
//
// If the query model is something that is trivial, then
// perhaps there is a short-cut we can take?
//
if (queryModel.IsIdentityQuery() && queryModel.ResultOperators.Count == 1)
{
var ro = queryModel.ResultOperators[0];
var processor = _operators.FindScalarROProcessor(ro.GetType());
if (processor != null)
{
var result = processor.ProcessIdentityQuery(ro, queryModel, _codeEnv, _codeContext, MEFContainer);
if (result != null
&& result.Item1)
{
Debug.WriteLine("Identity Query being processed");
_codeEnv.SetResult(result.Item2);
return;
}
}
}
// Have we seen this query model before? If so, perhaps we can just short-circuit this?
var cachedResult = _codeContext.GetReplacement(queryModel);
if (cachedResult != null)
{
var context = _codeEnv.FirstAllInScopeFromNow(FindDeclarableParameters.FindAll(cachedResult));
if (context != null)
{
_codeEnv.SetResult(cachedResult);
return;
}
}
// If we drop through here, then let the full machinery parse the thing
base.VisitQueryModel(queryModel);
}
finally
{
_codeContext.RestoreQuerySourceLookups(cachedReferencedQS);
}
}