Using NHibernateMystic with
private readonly Type[] baseTypesToRecognizeRootEntities = new[] {typeof
(AbstractEntity<>), typeof (Entity), typeof(Post<>)};

and this mapping
private void ConfOrmMapping(ObjectRelationalMapper orm, Mapper mapper)
{
}
yes! zero mappings line

The schema result is:
CREATE TABLE [dbo].[Members](
[Id] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[WallPosts](
[Id] [int] NOT NULL,
[ReceiverId] [int] NULL,
[Name] [nvarchar](255) NULL,
[BodyText] [nvarchar](255) NULL,
[AuthorId] [int] NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].[WallPosts]  WITH CHECK ADD  CONSTRAINT
[FK8C31182D2C7AC916] FOREIGN KEY([AuthorId])
REFERENCES [dbo].[Members] ([Id])
ALTER TABLE [dbo].[WallPosts] CHECK CONSTRAINT [FK8C31182D2C7AC916]
ALTER TABLE [dbo].[WallPosts]  WITH CHECK ADD  CONSTRAINT
[FK8C31182DF745ED00] FOREIGN KEY([ReceiverId])
REFERENCES [dbo].[Members] ([Id])
ON DELETE CASCADE
ALTER TABLE [dbo].[WallPosts] CHECK CONSTRAINT [FK8C31182DF745ED00]

And the result XML mapping is:
  <class name="WallPost" table="WallPosts">
    <id name="Id" type="Int32">
      <generator class="hilo">
        <param name="max_lo">100</param>
      </generator>
    </id>
    <many-to-one name="Receiver" column="ReceiverId" />
    <property name="Name" />
    <property name="BodyText" />
    <many-to-one name="Author" column="AuthorId" />
  </class>
  <class name="Member" table="Members">
    <id name="Id" type="Int32">
      <generator class="hilo">
        <param name="max_lo">100</param>
      </generator>
    </id>
    <bag name="WallPosts" inverse="true" cascade="all,delete-orphan">
      <key column="ReceiverId" on-delete="cascade" />
      <one-to-many class="WallPost" />
    </bag>
  </class>

On Tue, Apr 26, 2011 at 10:18 AM, oystagoymp <[email protected]> wrote:

> I've got this question that's been bugging me and my vast and
> unfathomable intellect just can't grasp it. The case: I want to make
> multiple one-to-many relationships to the same entity using the fluent
> nhibernate automapper and export schema.
>
> I have:
>
> Base Class:
>
>  public abstract class Post<T> : Entity, IVotable, IHierarchy<T>
>  {
>    public virtual string Name
>    {
>        get; set;
>    }
>
>    public virtual string BodyText
>    {
>        get; set;
>    }
>
>    public virtual Member Author
>    {
>        get; set;
>    }
> }
> and Inheriting Class:
>
>  [Serializable]
> public class WallPost : Post<WallPost>
> {
>    public virtual Member Receiver
>    {
>        get; set;
>    }
> }
> The 'Member' properties of WallPost is a foreign key relationship to
> this class:
>
> public class Member : Entity
>    {
>        public Member()
>        {
>           WallPosts = new IList<WallPost>();
>        }
>
>  public virtual IList<WallPost> WallPosts
>        {
>            get; set;
>        }
> }
> I hope you're with me until now. When I run the exportschema of
> nhibernate I expect to get a table wallpost with 'author_id' and
> 'receiver_id' BUT I get author_id, receiver_id,member_id. Why did the
> Nhibernate framework add member_id, if it's for the collection of
> posts (IList) then how do you specify that the foregin key
> relationship it should use to populate is receiver, i.e.
> member.WallPosts will return all the wallposts of the receiver.
>
> I hope i made sense, if you need anything else to answer the question
> let me know and I'll try to provide.
>
> Thanks in advance
>
> P.s. If I change the property name from 'Receiver' to 'Member' i.e.
> public virtual Member Member, only two associations are made instead
> of 3, author_id and member_id.
>
> E
>
> --
> 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.
>
>


-- 
Fabio Maulo

-- 
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