Wait, I just realized that I may still be confused.  Your example is
assigning Id(x =>, but this is a composite key.  How will FNH know
that PolicyNumber=PolNbr?

On Jan 19, 2:37 pm, Hudson Akridge <[email protected]> wrote:
> I'm guessing that PolicyNumber/PolicyDate in Policy are mapped as a
> composite key?
>
> Is there any reason for this other than that's what the database has mapped
> it as? Is PolicyNumber a valid entity Identifier as far as the domain model
> is concerned?
>
> If so, then you'd just map PolicyNumber with an
> Id(x=> x.PolicyNumber).GeneratedBy.Assigned(); //Just a guess on the
> assigned thing since I think your app might generate them
>
> And map your collection like so:
> HasMany<CreditCard>(x => x.CreditCards).AsBag()
>                .KeyColumn(PolNbr );
>
> Viola. Done. No need for a where at all there.
>
> Now, given that I caught a mapping. prefix, I'm assuming you're using an
> automapper. I'd advise against it in your case. It's very rare to expect
> automapper to automagically map for a legacy database environment. Swap to
> Fluent Mappings.
>
>
>
> On Tue, Jan 19, 2010 at 1:06 PM, Corey Coogan <[email protected]> wrote:
> > I have 2 entities that are described below.  I want to map many credit
> > cards to one policy.  There is no proper FK between them in our Oracle
> > DB (I can't change the DB at all).  They do match up on the
> > PolicyNumber->PolNbr properties though.
>
> > I can't figure out how to map this relationship.  Here's what I have
> > so far, but I'm not sure how to specify the Key in the containing
> > entity that doesn't match.
>
> > mapping.HasMany<CreditCard>(x => x.CreditCards)
> >                .KeyColumn(PolNbr )
> > //where to map CreditCard.PolNbr to Policy.PolicyNumber
>
> > Policy
> > {
> > PolicyNumber : string (PK)
> > PolicyDate : date (PK)
> > CreditCards : IList<CreditCard>
> > }
>
> > CreditCard
> > {
> > PolNbr : String (PK)
> > CcType : String (PK)
> > ExpDt : String (PK)
> > //3 more columns that are the PK
> > }
>
> > --
> > 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]<fluent-nhibernate%[email protected]>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/fluent-nhibernate?hl=en.
>
> --
> - Hudsonhttp://www.bestguesstheory.comhttp://twitter.com/HudsonAkridge
-- 
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