Moved from dev list...my apologies for asking my question on the wrong list.

I now understand that I need the BelongsTo, but my problem is
constructing the correct BelongsTo in this situation.  All my attempts
have failed.

So, my Journal class needs a BelongsTo to associate it to either a Foo
or Bar, so if I define this

  [BelongsTo("JournalableId", Table = "Journals")]
  public IJournalable Journalable { get; set; }

I get the the error message.  If I type the property to either of my
concrete types Foo or Bar, I do not get an error.

  [BelongsTo("JournalableId", Table = "Journals")]
  public Foo Journalable { get; set; }

or

  [BelongsTo("JournalableId", Table = "Journals")]
  public Bar Journalable { get; set; }

I feel that I need to be able to specify a type to the BelongsTo.  I
was attempting to use the Any attribute to specify my metatype,
IJournalable, as well as the concrete types, Foo and Bar,  for this
association.  I believe that my Journals table would end up with
columns Id, JournalableId, JournalableType where JournalableType would
be either Foo or Bar.

Is this type of association even possible?

Thanks,
Jason



On Fri, Jul 31, 2009 at 7:34 PM, Markus Zywitza<[email protected]> wrote:
> Hint: It's already explained in the exception: If you don't have a BelongsTo
> (Any doesn't count), you need to specify ColumnKey and Table.
>
> -Markus
>
> 2009/7/31 jsmorris <[email protected]>
>>
>> I am having trouble setting up my AR relationships.  I have tried so
>> many things, but nothing seems to work.  Here is what I am trying to
>> do.
>>
>> Foo has many Journals.  Bar has many Journals. A Journal can belong to
>> either Foo or Bar.
>>
>> If I try the mapping I have below, I get the following error
>>
>> Castle.ActiveRecord.Framework.ActiveRecordException: ActiveRecord
>> tried to infer details about the relation Bar.Journals but it could
>> not find a 'BelongsTo' mapped property in the target type
>> Intel.TraX.Tests.Data.Store.Journal
>>
>> I am probably way off on what needs to be done, but I am looking for
>> any help to point me in the right direction.
>>
>> Thanks,
>> Jason
>>
>>    [ActiveRecord]
>>    public class Journal : DomainObject<Journal>
>>    {
>>        [Any(typeof(Int32), MetaType = typeof(IJournalable),
>> TypeColumn = "JournalableType", IdColumn = "JournalableId", Cascade =
>> CascadeEnum.SaveUpdate)]
>>        [Any.MetaValue("Foo", typeof(Foo))]
>>        [Any.MetaValue("Bar", typeof(Bar))]
>>        public IJournalable Journalable { get; set; }
>>    }
>>
>>    public interface IJournalable {}
>>
>>    [ActiveRecord]
>>    public class Foo : DomainObject<Foo>, IJournalable
>>    {
>>        [HasMany(ColumnKey = "JournalableId")]
>>        public IList<Journal> Journals { get; set; }
>>    }
>>
>>    [ActiveRecord]
>>    public class Bar : DomainObject<Bar>, IJournalable
>>    {
>>        [HasMany(ColumnKey = "JournalableId")]
>>        public IList<Journal> Journals { get; set; }
>>    }
>> }
>>
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" 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/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to