- Home
- LLBLGen Pro
- LLBLGen Pro Runtime Framework
v3 - adapter, FindRealAlias exception
Posts
Posts: 222
Joined: 03-Apr-2007
Joined: 03-Apr-2007
# Posted on: 07-Feb-2011 14:07:53
Hello,
during creation of FieldName in custom predicate the following exception occures:
Object reference not set to an instance of an object.
at SD.LLBLGen.Pro.ORMSupportClasses.DbSpecificCreatorBase.FindRealAlias(String containingObjectName, String objectAlias, String actualContainingObjectName) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DbSpecificCreatorBase.cs:line 851
at SD.LLBLGen.Pro.ORMSupportClasses.DbSpecificCreatorBase.CreateFieldName(IFieldPersistenceInfo persistenceInfo, String fieldName, String objectAlias, Boolean appendAlias, String containingObjectName, String actualContainingObjectName) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DbSpecificCreatorBase.cs:line 249
at SD.LLBLGen.Pro.ORMSupportClasses.DbSpecificCreatorBase.ConvertFieldToRawName(IEntityFieldCore fieldCore, IFieldPersistenceInfo persistenceInfo, String fieldName, String objectAlias, Boolean applyAggregateFunction) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DbSpecificCreatorBase.cs:line 961
at SD.LLBLGen.Pro.ORMSupportClasses.DbSpecificCreatorBase.CreateFieldName(IEntityFieldCore fieldCore, IFieldPersistenceInfo persistenceInfo, String fieldName, String objectAlias, Boolean applyAggregateFunction) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DbSpecificCreatorBase.cs:line 285
at Implementation.LLBLGen.Dependent.PostgresqlFullTextSearchExpression.ToQueryText(Boolean inHavingClause) in C:\projects\TFS\Common\dotNet\Implementation.LLBLGen.Dependent\Predicates\PostgresqlFullTextSearchExpression.cs:line 29
at SD.LLBLGen.Pro.ORMSupportClasses.PredicateExpression.ToQueryText(Boolean inHavingClause) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\QueryApiElements\PredicateExpression.cs:line 225
at SD.LLBLGen.Pro.ORMSupportClasses.PredicateExpression.ToQueryText(Boolean inHavingClause) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\QueryApiElements\PredicateExpression.cs:line 225
at Implementation.LLBLGen.Dependent.Predicates.PostgreSqlFieldNamePredicate.ToQueryText(Boolean inHavingClause) in C:\projects\TFS\Common\dotNet\Implementation.LLBLGen.Dependent\Predicates\PostgreSqlFieldNamePredicate.cs:line 98
at Implementation.LLBLGen.Dependent.PostgreSqlCustomInPredicate.ToQueryText(Boolean inHavingClause) in C:\projects\TFS\Common\dotNet\Implementation.LLBLGen.Dependent\Predicates\PostgreSqlCustomInPredicate.cs:line 24
at SD.LLBLGen.Pro.ORMSupportClasses.PredicateExpression.ToQueryText(Boolean inHavingClause) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\QueryApiElements\PredicateExpression.cs:line 225
at SD.LLBLGen.Pro.ORMSupportClasses.PredicateExpression.ToQueryText(Boolean inHavingClause) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\QueryApiElements\PredicateExpression.cs:line 225
at SD.LLBLGen.Pro.ORMSupportClasses.PredicateExpression.ToQueryText(Boolean inHavingClause) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\QueryApiElements\PredicateExpression.cs:line 225
at SD.LLBLGen.Pro.ORMSupportClasses.PredicateExpression.ToQueryText() in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\QueryApiElements\PredicateExpression.cs:line 178
at SD.LLBLGen.Pro.ORMSupportClasses.DynamicQueryEngineBase.AppendWhereClause(IPredicate filter, QueryFragments destination, IQuery query) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DynamicQueryEngineBase.cs:line 1441
at SD.LLBLGen.Pro.ORMSupportClasses.DynamicQueryEngineBase.CreateSelectDQ(IEntityFieldCore[] selectList, IFieldPersistenceInfo[] fieldsPersistenceInfo, IRetrievalQuery query, IPredicate selectFilter, Int64 maxNumberOfItemsToReturn, ISortExpression sortClauses, IRelationCollection relationsToWalk, Boolean allowDuplicates, IGroupByCollection groupByClause, Boolean relationsSpecified, Boolean sortClausesSpecified) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DynamicQueryEngineBase.cs:line 1225
at SD.LLBLGen.Pro.ORMSupportClasses.DynamicQueryEngineBase.CreateSelectDQ(IEntityFieldCore[] selectList, IFieldPersistenceInfo[] fieldsPersistenceInfo, DbConnection connectionToUse, IPredicate selectFilter, Int64 maxNumberOfItemsToReturn, ISortExpression sortClauses, IRelationCollection relationsToWalk, Boolean allowDuplicates, IGroupByCollection groupByClause) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DynamicQueryEngineBase.cs:line 1088
at SD.LLBLGen.Pro.DQE.PostgreSql.DynamicQueryEngine.CreatePagingSelectDQ(IEntityFieldCore[] selectList, IFieldPersistenceInfo[] fieldsPersistenceInfo, DbConnection connectionToUse, IPredicate selectFilter, Int64 maxNumberOfItemsToReturn, ISortExpression sortClauses, IRelationCollection relationsToWalk, Boolean allowDuplicates, IGroupByCollection groupByClause, Int32 pageNumber, Int32 pageSize) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\PostgreSqlDQE\DynamicQueryEngine.cs:line 265
at SD.LLBLGen.Pro.ORMSupportClasses.DynamicQueryEngineBase.CreateSelectDQ(IEntityFieldCore[] selectList, IFieldPersistenceInfo[] fieldsPersistenceInfo, DbConnection connectionToUse, IPredicate selectFilter, Int64 maxNumberOfItemsToReturn, ISortExpression sortClauses, IRelationCollection relationsToWalk, Boolean allowDuplicates, IGroupByCollection groupByClause, Int32 pageNumber, Int32 pageSize) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\Persistence\DynamicQueryEngineBase.cs:line 1156
at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateSelectDQ(IEntityFields2 fieldsToFetch, IFieldPersistenceInfo[] persistenceInfoObjects, IPredicateExpression filter, Int64 maxNumberOfItemsToReturn, ISortExpression sortClauses, IRelationCollection relationsToWalk, Boolean allowDuplicates, IGroupByCollection groupByClause, Int32 pageNumber, Int32 pageSize) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\AdapterSpecific\DataAccessAdapterBase.cs:line 4440
at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal(IEntityCollection2 collectionToFill, IRelationPredicateBucket& filterBucket, Int32 maxNumberOfItemsToReturn, ISortExpression sortClauses, ExcludeIncludeFieldsList excludedIncludedFields, Int32 pageNumber, Int32 pageSize) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\AdapterSpecific\DataAccessAdapterBase.cs:line 4563
at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollection(IEntityCollection2 collectionToFill, IRelationPredicateBucket filterBucket, Int32 maxNumberOfItemsToReturn, ISortExpression sortClauses, IPrefetchPath2 prefetchPath, ExcludeIncludeFieldsList excludedIncludedFields, Int32 pageNumber, Int32 pageSize) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\AdapterSpecific\DataAccessAdapterBase.cs:line 2465
at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollection(IEntityCollection2 collectionToFill, IRelationPredicateBucket filterBucket, Int32 maxNumberOfItemsToReturn, ISortExpression sortClauses, IPrefetchPath2 prefetchPath, ExcludeIncludeFieldsList excludedIncludedFields) in c:\Myprojects\VS.NET Projects\LLBLGen Pro v3.0\Frameworks\LLBLGen Pro\RuntimeLibraries\ORMSupportClasses\AdapterSpecific\DataAccessAdapterBase.cs:line 2384
at AplusC.Common.Implementation.WithDependencies.Dao.BaseLLBLGenDAO.FetchEntityCollection(IDataAccessAdapter adapter, IEntityCollection2 collectionToFetch, IRelationPredicateBucket filterBucket, ExcludeIncludeFieldsList excludedFields, IPrefetchPath2 prefetchPath, ISortExpression sortClauses, Int32 maxNumberOfItemsToReturn) in C:\projects\TFS\Common\dotNet\Implementation.LLBLGen.Dependent\BaseClasses\BaseLLBLGenDAO.cs:line 46
at AplusC.Common.Implementation.WithDependencies.Dao.BaseLLBLGenDAO.FetchEntityCollection(IEntityCollection2 collectionToFetch, IRelationPredicateBucket filterBucket, IPrefetchPath2 prefetchPath, Int32 maxNumberOfItemsToReturn) in C:\projects\TFS\Common\dotNet\Implementation.LLBLGen.Dependent\BaseClasses\BaseLLBLGenDAO.cs:line 53
at AplusC.TvMan.New.CommonBusiness.Facades.CommonContentDao.GetContentsBySQLLLBLGen(String originalTitle, String title, String subtitle, Int64[] directorID, String year, String country, String languageID, Nullable`1 episodeNumber, Int32 count) in C:\projects\TFS\Common\dotNet\TvMan.CommonBusiness\Facades\CommonContentDao.cs:line 219
at AplusC.TvMan.New.CommonBusiness.Managers.ContentMatchManager.Match(IEventEventEntity importedEvent, IContentMainContentEntity importedContent, String languageID, String senderID, Int32 maxRecordCountFetch) in C:\projects\TFS\Common\dotNet\TvMan.CommonBusiness\Managers\ContentMatchManager.cs:line 212
at Steve.Server.DataInputProvider.SteveDataInputProviderFacade.<>c__DisplayClass1b.<MatchContent>b__19(IEventEventEntity broadcast) in C:\projects\TFS\Steve\Server\Steve.Server.DataInputProvider\Facades\SteveDataInputProviderFacade.cs:line 370
The predicate which cause a problem.
[Serializable]
public class PostgresqlFullTextSearchExpression : FieldCompareExpressionPredicate
{
string pattern;
public PostgresqlFullTextSearchExpression(IEntityFieldCore field, string pattern)
: base(field, null, ComparisonOperator.None, null)
{
//escape a ' char, because of a query problem
this.pattern = Regex.Replace(pattern, @"(?<rplc>[^']'[^']){1}", "''");
}
public override string ToQueryText(bool inHavingClause)
{
DbParameter parameter = base.DatabaseSpecificCreator.CreateParameter(System.Data.ParameterDirection.Input, this.pattern);
base.Parameters.Add(parameter);
string fieldName = this.DatabaseSpecificCreator.CreateFieldName(this.FieldCore, this.PersistenceInfo, this.FieldCore.Name, this.FieldCore.ObjectAlias, false);
//we should also use a db method to lowercase. WARNING that method also transforms a string (changes some letters to other letters) so we cannot do that in the code!!
return string.Format(@"plainto_tsquery('simple', content.to_lowercase({0})) @@ {1} ", parameter.ParameterName, fieldName);
}
public override string ToQueryText()
{
return this.ToQueryText(false);
}
}
All parameters passed into a method this.DatabaseSpecificCreator.CreateFieldName(this.FieldCore, this.PersistenceInfo, this.FieldCore.Name, this.FieldCore.ObjectAlias, false); seems ok. The object alias is set to null. Can you say what could be wrong basing provided info?
Regards, MiloszeS