Hello,

While working with Fluent NHibernate to map my entities, I ran into
this exception when trying to test my mappings with the
PersistenceSpecification:

Test method FluentNHibernateBug.Tests.UnitTest1.TestMethod1 threw
exception:  System.InvalidCastException: Unable to cast object of type
'Iesi.Collections.Generic.HashedSet`1[FluentNHibernateBug.Bar]' to
type 'System.Collections.Generic.IList`1[FluentNHibernateBug.Bar]'..

I'm using these entities:

Bar.cs:

namespace FluentNHibernateBug
{
    public class Bar
    {
        public virtual int Id { get; set; }

        public virtual string Name { get; set; }
    }
}

Foo.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FluentNHibernateBug.Entities
{
    public class Foo
    {
        public Foo()
        {
            Bars = new List<Bar>();
        }

        public virtual int Id { get; set; }
        public virtual ICollection<Bar> Bars { get; set; }
    }
}

Mappings:

BarMapping.cs:

using FluentNHibernate.Mapping;

namespace FluentNHibernateBug.Mappings
{
    public class BarMapping : ClassMap<Bar>
    {
        public BarMapping()
        {
            Id(bar => bar.Id);
            Map(bar => bar.Name);
        }
    }
}

FooMapping.cs:

using FluentNHibernate.Mapping;
using FluentNHibernateBug.Entities;

namespace FluentNHibernateBug.Mappings
{
    public class FooMapping : ClassMap<Foo>
    {
        public FooMapping()
        {
            Id(foo => foo.Id);
            HasMany(foo => foo.Bars)
                .AsBag();
        }
    }
}

And the unit test that fails me:

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using FluentNHibernate.Testing;
using FluentNHibernateBug.Entities;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NHibernate.Tool.hbm2ddl;

namespace FluentNHibernateBug.Tests
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            var configuration = Fluently.Configure()
                .Database(SQLiteConfiguration.Standard.InMemory())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Foo>
())
                .BuildConfiguration();

            var sessionFactory = configuration.BuildSessionFactory();


            var session = sessionFactory.OpenSession();

            new SchemaExport(configuration).Execute(true, true, false,
true, session.Connection, null);

            var specification = new PersistenceSpecification<Foo>
(session);

            var barList = new List<Bar>
                              {
                                  new Bar{Name = "Bar1"}
                              };

            specification
                .CheckList(foo => foo.Bars, barList)
                .VerifyTheMappings();

        }
    }
}

Any ideas?

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to