I'd like to try to solve this without changing my domain as a
workaround if I can.  My code is 100% legitimate domain and C#
design.  It's not double inheritance, I'm just implementing two
interfaces.  Perhaps NHibernate cannot accommodate explicit interface
implementation?

On Mar 25, 1:35 am, TigerShark <[email protected]> wrote:
> Looks a bit to me like you're trying to do multiple inheritance?
> Since I'm no expert, I won't say anything about this not being
> possible, but perhaps your design needs to be revised?
>
> If I'm way off, please ignore this post ;)
>
> On 25 Mar., 06:23, Joshua <[email protected]> wrote:
>
> > I've done some more work on this and while I've gotten a lot closer,
> > I'm not satisfied.  First, my partial solution relies on the new
> > entity-name feature from the trunk.  While I can live with that, it's
> > still not working and I just get the feeling I'm making this all too
> > complicated.  Anyway, here's my partial solution with some a unit test
> > and it's results to exemplify the issue:
>
> > using NHibernate;
> > using NHibernate.Cfg;
> > using NHibernate.Tool.hbm2ddl;
> > using NUnit.Framework;
>
> > namespace MappingTests
> > {
> >     public interface IFooString
> >     {
> >         string Foo
> >         {
> >             get;
> >             set;
> >         }
>
> >     }
>
> >     public interface IFooInt
> >     {
> >         int Foo
> >         {
> >             get;
> >             set;
> >         }
>
> >     }
>
> >     public class ConcreteFoo : IFooString, IFooInt
> >     {
> >         public virtual int Id
> >         {
> >             get;
> >             set;
> >         }
>
> >         public virtual string Name
> >         {
> >             get;
> >             set;
> >         }
>
> >         string IFooString.Foo
> >         {
> >             get;
> >             set;
> >         }
>
> >         int IFooInt.Foo
> >         {
> >             get;
> >             set;
> >         }
> >     }
>
> >     [TestFixture]
> >     public class FooTests
> >     {
> >         [Test]
> >         public void Test()
> >         {
> >             Configuration cfg = new Configuration();
> >             cfg = cfg.Configure();
> >             ISessionFactory factory = cfg.BuildSessionFactory();
> >             using (ISession session = factory.OpenSession())
> >             {
> >                 new SchemaExport(cfg).Execute(false, true, false,
> > true, session.Connection, null);
>
> >                 ConcreteFoo foo = new ConcreteFoo();
> >                 foo.Name = "foo";
> >                 ((IFooInt)foo).Foo = 0;
> >                 ((IFooString)foo).Foo = "foo";
>
> >                 session.Save("IFooInt", foo);
> >                 session.Save("IFooString", foo);
> >             }
> >         }
> >     }
>
> > }
>
> > <?xml version="1.0" encoding="utf-8" ?>
> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> > assembly="MappingTests" namespace="MappingTests">
> >   <class name="ConcreteFoo">
> >     <id name="Id">
> >       <generator class="identity" />
> >     </id>
> >     <property name="Name" />
> >     <joined-subclass name="ConcreteFoo" entity-name="IFooInt">
> >       <key />
> >       <property name="Foo" />
> >     </joined-subclass>
> >     <joined-subclass name="ConcreteFoo" entity-name="IFooString">
> >       <key />
> >       <property name="Foo" />
> >     </joined-subclass>
> >   </class>
> > </hibernate-mapping>
>
> > ------ Test started: Assembly: MappingTests.dll ------
>
> > NHibernate: INSERT INTO ConcreteFoo (Name) VALUES (@p0); select
> > last_insert_rowid(); @p0 = 'foo'
> > NHibernate: INSERT INTO IFooInt (Foo, IFooInt) VALUES (@p0, @p1); @p0
> > = 'foo', @p1 = '1'
>
> > As you can see, the result was that IFooInt was mapped properly, but
> > not IFooString.
>
> > Please help me figure this out.  I'm pretty new to mapping so I'm
> > aware there are numerous ways I could be dorking this.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" 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/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to