Hi Troy Yeah, to get the benefit you really have to set a bunch of constraints and try to stay inside them it's usually best on a greenfield to be honest.
Andy On Thu, Jan 8, 2009 at 4:29 AM, Troy Goode <troygo...@gmail.com> wrote: > Thanks Andy, > > Evidently I had a version of the source from before IsBaseType was > introduced. Once I refreshed and rebuilt the source I was able to get > everything working. In the end, though, I decided to go back to using > ClassMap<T> because I was having to create so many overrides for things like > WithLengthOf(x) and CanNotBeNull() that it wasn't worth it for my particular > project. It was a fun spike though! > > Troy > > > On Tue, Jan 6, 2009 at 2:39 PM, Andrew Stewart < > andrew.stew...@i-nnovate.net> wrote: > >> Hi Troy >> Here we go straight from the tests :o), always a good place to put things >> you can't remember. >> >> var autoMapper = AutoPersistenceModel >> .MapEntitiesFromAssemblyOf<ExampleClass>() >> .Where(t => t.Namespace == >> "FluentNHibernate.AutoMap.TestFixtures.SuperTypes") >> .WithConvention(c => >> { >> c.IsBaseType = b => b == >> typeof(BaseEntity); >> }); >> >> That should do it for you. >> >> Andy >> >> >> On Tue, Jan 6, 2009 at 4:57 PM, Troy Goode <troygo...@gmail.com> wrote: >> >>> >>> Thanks Andrew, that makes sense, but unfortunately I'm still not >>> getting it to work. I added a convention for GetPrimaryKeyName, but >>> wasn't able to determine what convention to use to change the >>> baseobject to BaseEntity from object. When you have some time, any >>> help would be appreciated. >>> >>> Troy >>> >>> On Jan 6, 11:44 am, "Andrew Stewart" <andrew.stew...@i-nnovate.net> >>> wrote: >>> > Hi Troy >>> > I'm away from the code right now but the answers your are looking for >>> are >>> > under the WithConventions method. >>> > >>> > From there you can set your baseobject to be BaseEntity rather than >>> object >>> > and set GetPrimaryKeyName to be Id. >>> > >>> > Hope that helps if not i'll look it up when I'm back at a machine. >>> > >>> > Andy >>> > >>> > >>> > >>> > On Tue, Jan 6, 2009 at 4:35 PM, Troy Goode <troygo...@gmail.com> >>> wrote: >>> > >>> > > Alright, I'm stumped. I have everything working fine with normal FNH, >>> > > but once I tried to spike automapping I ran into an issue. In my >>> > > project I have a base class for all of my entities like so: >>> > >>> > > public abstract class BaseEntity >>> > > { >>> > > public virtual int? Id { get; set; } >>> > > public virtual DateTime? DateCreated { get; set; } >>> > > public virtual DateTime? DateLastModified { get; set; } >>> > > public virtual DateTime? DateDeleted { get; set; } >>> > > } >>> > >>> > > So an example of one of my entities would be: >>> > >>> > > public class Foo : BaseEntity >>> > > { >>> > > public virtual string Name { get; set; } >>> > > } >>> > >>> > > Finally, my autopersit setup looks like so: >>> > >>> > > var persistanceModel = AutoPersistenceModel >>> > > .MapEntitiesFromAssemblyOf<Foo>() >>> > > .Where( t=> t.Namespace == "MyNamespace" && t.Name != >>> > > "BaseEntity" ) >>> > > .ForTypesThatDeriveFrom<BaseEntity>( t=> >>> > > { >>> > > t.Id( e => e.Id, "Id" >>> ); >>> > > t.Map( e=> >>> e.DateCreated ); >>> > > t.Map( e=> >>> > > e.DateLastModified ); >>> > > t.Map( e=> >>> e.DateDeleted ); >>> > > } ); >>> > >>> > > The problem I've encountered is that when NH goes to generate its >>> > > query, it comes up with something like so: >>> > >>> > > SELECT >>> > > this_.BaseEntityId as Id0_0_, >>> > > this_1_.DateLastModified as DateLast2_0_0_, >>> > > this_1_.DateDeleted as DateDele3_0_0_, >>> > > this_1_.DateCreated as DateCrea4_0_0_, >>> > > this_.Name as Name0_0_ >>> > > FROM >>> > > Foo this_ >>> > > inner join [BaseEntity] this_1_ >>> > > on this_.BaseEntityId=this_1_.Id >>> > >>> > > This will not work as my table structure is simply: >>> > >>> > > Foo >>> > > - Id >>> > > - Name >>> > > - DateCreated >>> > > - DateLastModified >>> > > - DateDeleted >>> > >>> > > Like I said, I have everything working with ClassMap, it is only when >>> > > I try to use AutoPersistence that the issue arises... so two >>> > > questions: >>> > > 1) How do I configure things so that BaseEntity is not assumed to be >>> > > another table? >>> > > 2) How do I configure things so that the Id property maps to the "Id" >>> > > column, rather than (the non-existent) "BaseEntityId" column? >>> > >>> > > Thanks! >>> > >>> > -- >>> > ================= >>> > I-nnovate Software - Bespoke Software Development, uk wirral. >>> http://www.i-nnovate.net >>> >>> >> >> >> -- >> ================= >> I-nnovate Software - Bespoke Software Development, uk wirral. >> http://www.i-nnovate.net >> >> >> > > > > -- ================= I-nnovate Software - Bespoke Software Development, uk wirral. http://www.i-nnovate.net --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to fluent-nhibernate@googlegroups.com To unsubscribe from this group, send email to fluent-nhibernate+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---