/// <summary> /// Получить <see cref="LoadingCustomizationStruct"/> для указанного linq-выражения по представлению. /// </summary> /// <param name="queryExpression">Linq-выражение, по которому будет сформирован <see cref="LoadingCustomizationStruct"/>.</param> /// <param name="view">Представление, по которому будут зачитаны данные.</param> /// <param name="resolvingViews">Представления мастеров, необходимые для получения их детейлов, в случае динамических представлений. </param> /// <returns><see cref="LoadingCustomizationStruct"/>, полученный для указанного linq-выражения по представлению.</returns> public static LoadingCustomizationStruct GetLcs <Q>(Expression queryExpression, View view, IEnumerable <View> resolvingViews) where Q : IQueryModelVisitor { var queryModel = UtilsLcs.CreateQueryParser().GetParsedQuery(queryExpression); return(GetQueryModelVisitor <Q>(false, view, resolvingViews).GenerateLcs(queryModel)); }
/// <summary> /// Получить <see cref="LoadingCustomizationStruct"/> для указанного linq-выражения с динамически созданным представлением. /// </summary> /// <param name="queryExpression">Linq-выражение, по которому будет сформирован <see cref="LoadingCustomizationStruct"/>.</param> /// <param name="type">Тип объекта данных, для которого необходимо сформировать <see cref="LoadingCustomizationStruct"/>.</param> /// <returns><see cref="LoadingCustomizationStruct"/>, полученный для указанного linq-выражения с динамически созданным представлением.</returns> public static LoadingCustomizationStruct GetLcs <Q>(Expression queryExpression, Type type) where Q : IQueryModelVisitor { var queryModel = UtilsLcs.CreateQueryParser().GetParsedQuery(queryExpression); if (!type.IsSubclassOf(typeof(DataObject))) { throw new ArgumentException(string.Format("Тип \"{0}\" должен наследовать DataObject", type)); } var view = new View { DefineClassType = type, Name = string.Format("DynamicViewFor{0}", type.FullName) }; return(GetQueryModelVisitor <Q>(true, view, null).GenerateLcs(queryModel)); }