Advertisement
Guest User

Untitled

a guest
Jul 7th, 2015
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.36 KB | None | 0 0
  1. public class test
  2. {
  3. public virtual int id { get; set; }
  4. public virtual string[] items { get; set; }
  5. }
  6.  
  7. CREATE TABLE test
  8. (
  9. id serial,
  10. items text[],
  11. primary key(id)
  12. )
  13.  
  14. var tests = session.Query<test>
  15. .Where(t => t.items.Any(item => filterItems.Contains(item)))
  16. .ToList();
  17.  
  18. NHibernate.PropertyAccessException was unhandled
  19. HResult=-2146232832
  20. Message=Exception occurred getter of IntersectionTest.Models.test.id
  21. Source=NHibernate
  22. StackTrace:
  23. at NHibernate.Properties.BasicPropertyAccessor.BasicGetter.Get(Object target)
  24. at NHibernate.Tuple.Entity.AbstractEntityTuplizer.GetIdentifier(Object entity)
  25. at NHibernate.Persister.Entity.AbstractEntityPersister.GetIdentifier(Object obj, EntityMode entityMode)
  26. at NHibernate.Persister.Entity.AbstractEntityPersister.IsTransient(Object entity, ISessionImplementor session)
  27. at NHibernate.Engine.ForeignKeys.IsTransient(String entityName, Object entity, Nullable`1 assumed, ISessionImplementor session)
  28. at NHibernate.Engine.ForeignKeys.GetEntityIdentifierIfNotUnsaved(String entityName, Object entity, ISessionImplementor session)
  29. at NHibernate.Type.EntityType.GetIdentifier(Object value, ISessionImplementor session)
  30. at NHibernate.Type.ManyToOneType.NullSafeSet(IDbCommand cmd, Object value, Int32 index, ISessionImplementor session)
  31. at NHibernate.Param.NamedParameterSpecification.Bind(IDbCommand command, IList`1 multiSqlQueryParametersList, Int32 singleSqlParametersOffset, IList`1 sqlQueryParametersList, QueryParameters queryParameters, ISessionImplementor session)
  32. at NHibernate.Param.NamedParameterSpecification.Bind(IDbCommand command, IList`1 sqlQueryParametersList, QueryParameters queryParameters, ISessionImplementor session)
  33. at NHibernate.SqlCommand.SqlCommandImpl.Bind(IDbCommand command, ISessionImplementor session)
  34. at NHibernate.Loader.Loader.PrepareQueryCommand(QueryParameters queryParameters, Boolean scroll, ISessionImplementor session)
  35. at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
  36. at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
  37. at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters, IResultTransformer forcedResultTransformer)
  38. at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)
  39. at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)
  40. at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
  41. at NHibernate.Loader.Hql.QueryLoader.List(ISessionImplementor session, QueryParameters queryParameters)
  42. at NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor session, QueryParameters queryParameters)
  43. at NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters queryParameters, ISessionImplementor session, IList results)
  44. at NHibernate.Impl.SessionImpl.List(IQueryExpression queryExpression, QueryParameters queryParameters, IList results)
  45. at NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression queryExpression, QueryParameters parameters)
  46. at NHibernate.Impl.AbstractQueryImpl2.List()
  47. at NHibernate.Linq.DefaultQueryProvider.ExecuteQuery(NhLinqExpression nhLinqExpression, IQuery query, NhLinqExpression nhQuery)
  48. at NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)
  49. at NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)
  50. at Remotion.Linq.QueryableBase`1.GetEnumerator()
  51. at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
  52. at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
  53. ...
  54. InnerException: System.Reflection.TargetException
  55. HResult=-2146232829
  56. Message=Object does not match target type.
  57. Source=mscorlib
  58. StackTrace:
  59. at System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)
  60. at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
  61. at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
  62. at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
  63. at NHibernate.Properties.BasicPropertyAccessor.BasicGetter.Get(Object target)
  64.  
  65. class testMapping : ClassMap<test>
  66. {
  67. public testMapping()
  68. {
  69. Id(x => x.id);
  70. Map(x => x.items)
  71. .CustomType<PostgreSqlStringArrayType>()
  72. .CustomSqlType("text[]");
  73. }
  74. }
  75.  
  76. [Serializable]
  77. public class PostgreSqlStringArrayType : IUserType
  78. {
  79. public SqlType[] SqlTypes
  80. {
  81. get
  82. {
  83. return new[]
  84. {
  85. new SqlType(DbType.Object)
  86. };
  87. }
  88. }
  89.  
  90. public Type ReturnedType
  91. {
  92. get { return typeof(string[]); }
  93. }
  94.  
  95. public bool IsMutable { get; private set; }
  96.  
  97. public object Assemble(object cached, object owner)
  98. {
  99. return cached;
  100. }
  101.  
  102. public object DeepCopy(object value)
  103. {
  104. return value;
  105. }
  106.  
  107. public object Disassemble(object value)
  108. {
  109. return value;
  110. }
  111.  
  112. public int GetHashCode(object x)
  113. {
  114. return (x == null) ? 0 : x.GetHashCode();
  115. }
  116.  
  117. public object NullSafeGet(IDataReader rs, string[] names, object owner)
  118. {
  119. int index = rs.GetOrdinal(names[0]);
  120. return rs.GetValue(index) as string[];
  121. }
  122.  
  123. public void NullSafeSet(IDbCommand cmd, object value, int index)
  124. {
  125. var parameter = ((NpgsqlParameter) cmd.Parameters[index]);
  126. parameter.NpgsqlDbType = NpgsqlDbType.Array | NpgsqlDbType.Text;
  127. parameter.Value = value;
  128. }
  129.  
  130. public object Replace(object original, object target, object owner)
  131. {
  132. return original;
  133. }
  134.  
  135. bool IUserType.Equals(object x, object y)
  136. {
  137. if (ReferenceEquals(x, y))
  138. {
  139. return true;
  140. }
  141. return (x != null) && x.Equals(y);
  142. }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement