AnantLabs / codesmith

Automatically exported from code.google.com/p/codesmith
1 stars 0 forks source link

Invalid Cast (check your mapping for property type mismatches); setter of System.Object #592

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Attempt to load entity from the database
2.
3.

What is the expected output? What do you see instead?
I'm expecting a loaded entity returned, instead I'm getting an error.

What version of the product are you using?
PLINQO.NH-v1.0.0, CodeSmith Generator Professional 5.3.4

Please provide any additional information below.
See the error generated here: http://screencast.com/t/OGrS9grh
I have checked the mapping files and I cannot find a problem. I'm able to save 
entities to the database without a problem, it's just loading them back.

I've pasted the mapping file below, against this SQL server table: 
http://screencast.com/t/KJYOcViOsc

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Domain.Data" 
assembly="Domain">
    <class name="Company" table="[dbo].[Company]" >
        <id name="CompanyId" column="[CompanyId]" type="Int32" >
            <generator class="native" />
        </id>
        <property name="Name" column="[Name]" type="String" not-null="true" length="100" /> 
        <property name="CreatedDate" column="[CreatedDate]" type="DateTime" not-null="true" /> 
        <property name="CreatedBy" column="[CreatedBy]" type="Int32" not-null="true" /> 
        <property name="LastUpdatedDate" column="[LastUpdatedDate]" type="DateTime" not-null="true" /> 
        <property name="LastUpdatedBy" column="[LastUpdatedBy]" type="Int32" not-null="true" /> 
        <bag name="UserList" inverse="true" cascade="all-delete-orphan" lazy="true" >
            <key>
                <column name="[CompanyId]" />
            </key>
            <one-to-many class="User" />
        </bag>
    </class>
</hibernate-mapping>

Here's the full stacktrace of the error:

   at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValuesWithOptimizer(Object entity, Object[] values) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Tuple\Entity\PocoEntityTuplizer.cs:line 308
   at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValues(Object entity, Object[] values) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Tuple\Entity\PocoEntityTuplizer.cs:line 289
   at NHibernate.Persister.Entity.AbstractEntityPersister.SetPropertyValues(Object obj, Object[] values, EntityMode entityMode) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Persister\Entity\AbstractEntityPersister.cs:line 3858
   at NHibernate.Engine.TwoPhaseLoad.InitializeEntity(Object entity, Boolean readOnly, ISessionImplementor session, PreLoadEvent preLoadEvent, PostLoadEvent postLoadEvent) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Engine\TwoPhaseLoad.cs:line 97
   at NHibernate.Loader.Loader.InitializeEntitiesAndCollections(IList hydratedObjects, Object resultSetId, ISessionImplementor session, Boolean readOnly) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Loader\Loader.cs:line 603
   at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Loader\Loader.cs:line 472
   at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Loader\Loader.cs:line 243
   at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Loader\Loader.cs:line 1712
   at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Loader\Loader.cs:line 1601
   at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Loader\Loader.cs:line 1595
   at NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.List(ISessionImplementor session, QueryParameters queryParameters) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Hql\Ast\ANTLR\Loader\QueryLoader.cs:line 300
   at NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor session, QueryParameters queryParameters) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Hql\Ast\ANTLR\QueryTranslatorImpl.cs:line 111
   at NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters queryParameters, ISessionImplementor session, IList results) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Engine\Query\HQLQueryPlan.cs:line 105
   at NHibernate.Impl.SessionImpl.List(IQueryExpression queryExpression, QueryParameters queryParameters, IList results) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Impl\SessionImpl.cs:line 661
   at NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression queryExpression, QueryParameters parameters) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Impl\AbstractSessionImpl.cs:line 92
   at NHibernate.Impl.ExpressionQueryImpl.List() in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Impl\ExpressionQueryImpl.cs:line 63
   at NHibernate.Linq.DefaultQueryProvider.ExecuteQuery(NhLinqExpression nhLinqExpression, IQuery query, NhLinqExpression nhQuery) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Linq\DefaultQueryProvider.cs:line 103
   at NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Linq\DefaultQueryProvider.cs:line 35
   at NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression) in E:\Downloads\NHibernate-3.2.0.Beta1-src\src\NHibernate\Linq\DefaultQueryProvider.cs:line 40
   at Remotion.Linq.QueryableBase`1.GetEnumerator() in c:\build\Remotion\working\Relinq\Core\QueryableBase.cs:line 132
   at CodeSmith.Data.NHibernate.Table`1.GetEnumerator() in \PLINQO-NH\Source\CodeSmith.Data.NHibernate\Entities\Tables.cs:line 30
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at .Domain.Data.CompanyExtensions.GetAll(IQueryable`1 query) in \code\.Domain\Data\Queries\Company.generated.cs:line 486
   at .Domain.Data.Company.GetAll(DataContext dbContext) in \code\.Domain\Data\Entities\Company.generated.cs:line 327
   at .Domain.Data.Company.GetAll() in \code\.Domain\Data\Entities\Company.generated.cs:line 321
   at .Domain.Test.Base_Tests.CompanyFixture.LoadAll() in \code\.Domain.Test\Base Tests\CompanyFixture.cs:line 186

Original issue reported on code.google.com by ben.emp...@gmail.com on 1 Jul 2011 at 4:46

GoogleCodeExporter commented 9 years ago
Here's the query I'm using to load the entities, the program chokes on this 
call, going to the location shown here http://screencast.com/t/OGrS9grh:

public static IList<Company> GetAll(this IQueryable<Company> query)
        {
            return query
                .ToList();
        }

Original comment by ben.emp...@gmail.com on 1 Jul 2011 at 4:48

GoogleCodeExporter commented 9 years ago

Original comment by bniemyjski on 5 Jul 2011 at 1:03

GoogleCodeExporter commented 9 years ago
Ben,

Can you please try to reproduce this against PLINQO for NH 1.0.1?
http://code.google.com/p/codesmith/downloads/detail?name=PLINQO.NH-v1.0.1.zip

Thanks,
Tom

Original comment by tdup...@codesmithtools.com on 5 Jul 2011 at 1:59

GoogleCodeExporter commented 9 years ago
Hi Tom, apologies for the lack of response. I had to switch to PLINQO->Linq-SQL 
due to this problem, so obviously I've been focussed on getting this sorted for 
my current project. I will try and validate this later and let you know what 
happens but not sure when I'll be able to get to it.

Regards, Ben

Original comment by ben.emp...@gmail.com on 12 Jul 2011 at 1:39

GoogleCodeExporter commented 9 years ago
Ben,

Did you try using the latest templates?
If so, could you please give us the part of your database schema that is 
causing this to break?

I would really like to get this fixed, I just need a bit more information to go 
on.

Thanks,
Tom

Original comment by tdupont...@gmail.com on 12 Jul 2011 at 2:43