Hi James
Yeah that's correct, I think in theory you could even stick that helper
method in a loop for all classes in namespace or assembly.

Andy

On Fri, Jan 9, 2009 at 12:13 PM, James Gregory <jagregory....@gmail.com>wrote:

> Andrew am I correct in thinking this...
>
> modeloPersistencia.ForTypesThatDeriveFrom<EntidadeBase>(eb =>
>   eb.Version(d => d.Versao)
>     .TheColumnNameIs("Versao")
>     .SetAttributes(new Attributes {
>       {"type", "ModeloOO.NH.UserTypeTimestamp,ModeloOO.NH"},
>       {"unsaved-value", "null"},
>       {"generated", "always"}}));
>
> Should be replaced by one for each entity that has the version column?
>
> modeloPersistencia.ForTypesThatDeriveFrom<Entity1>(eb =>
>   eb.Version(d => d.Versao)
>     .TheColumnNameIs("Versao")
>     .SetAttributes(new Attributes {
>       {"type", "ModeloOO.NH.
> UserTypeTimestamp,ModeloOO.NH"},
>       {"unsaved-value", "null"},
>       {"generated", "always"}}));
>
> modeloPersistencia.ForTypesThatDeriveFrom<Entity2>(eb =>
>   eb.Version(d => d.Versao)
>     .TheColumnNameIs("Versao")
>     .SetAttributes(new Attributes {
>       {"type", "ModeloOO.NH.
> UserTypeTimestamp,ModeloOO.NH"},
>       {"unsaved-value", "null"},
>       {"generated", "always"}}));
>
>
> If I'm correct in that assumption... Luis, you could probably wrap this up
> in a little helper method for the time being. Something along the lines of:
>
> public void ConfigureVersion<TEntity>(PersistenceModel model)
> {
>   model.ForTypesThatDeriveFrom<TEntity>(eb =>
>     eb.Version(d => d.Versao)
>       .TheColumnNameIs("Versao")
>       .SetAttributes(new Attributes {
>         {"type", "ModeloOO.NH.UserTypeTimestamp,ModeloOO.NH"},
>         {"unsaved-value", "null"},
>         {"generated", "always"}}));}
>
> Then in your auto mapping do this:
>
> // ... normal auto mapping stuff ...
> ConfigureVersion<Entity1>(modeloPersistencia);
> ConfigureVersion<Entity2>(modeloPersistencia);
>
> On Fri, Jan 9, 2009 at 12:04 PM, Andrew Stewart <
> andrew.stew...@i-nnovate.net> wrote:
>
>> Hi james
>> Thanks for looking at this for me. Yeah that makes sense as to why it's
>> producing no xml. Luis are your problems solved now? Unfortunalty there is
>> no automatic way to map your version column at this time, you'll have to
>> take your manual mapping and apply it in the FromDerivedFromClass for each
>> class in your solution.
>>
>> I think that should sort your issue out.
>>
>> Andy
>>
>> On Fri, Jan 9, 2009 at 11:48 AM, James Gregory 
>> <jagregory....@gmail.com>wrote:
>>
>>> It's because with the AutoMapping, no mappings are actually generated
>>> until Configure is called.
>>> As for your other issue, I haven't forgotten about it I'm just not near a
>>> machine I can debug from. Hopefully tonight or sometime over the weekend
>>> I'll get a chance.
>>>
>>>
>>> On Fri, Jan 9, 2009 at 11:45 AM, Luis Abreu <lab...@gmail.com> wrote:
>>>
>>>>  Ok, that makes sense.
>>>>
>>>>
>>>>
>>>> Thanks,.
>>>>
>>>>
>>>>
>>>> ---
>>>>
>>>> Luis Abreu
>>>>
>>>>
>>>>
>>>> *From:* fluent-nhibernate@googlegroups.com [mailto:
>>>> fluent-nhibern...@googlegroups.com] *On Behalf Of *James Gregory
>>>> *Sent:* sexta-feira, 9 de Janeiro de 2009 09:39
>>>>
>>>> *To:* fluent-nhibernate@googlegroups.com
>>>> *Subject:* [fluent-nhib] Re: question on auto mapping
>>>>
>>>>
>>>>
>>>> You're missing a call to Configure. Before calling
>>>> modeloPersistencia.WriteMappingsTo(@"d:\"); call
>>>> modeloPersistencia.Configure(nhibernateConfig);
>>>>
>>>>
>>>>
>>>> On Thu, Jan 8, 2009 at 9:57 PM, Luis Abreu <lab...@gmail.com> wrote:
>>>>
>>>> Btw James, one more question:
>>>>
>>>>
>>>>
>>>> When using the auto persistence, shouldn't  I be able to save the xml to
>>>> disk by using the previous code? It's that I get nothing and stopping the
>>>> debugger there I see 0 mappings on the persistencemodel
>>>>
>>>>
>>>>
>>>> Thanks.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ---
>>>>
>>>> Luis Abreu
>>>>
>>>>
>>>>
>>>> *From:* fluent-nhibernate@googlegroups.com [mailto:
>>>> fluent-nhibern...@googlegroups.com] *On Behalf Of *James Gregory
>>>> *Sent:* quinta-feira, 8 de Janeiro de 2009 16:27
>>>>
>>>>
>>>> *To:* fluent-nhibernate@googlegroups.com
>>>> *Subject:* [fluent-nhib] Re: question on auto mapping
>>>>
>>>>
>>>>
>>>> Hello Luis,
>>>>
>>>>
>>>>
>>>> I'm away from a machine with Visual Studio on right now, so I don't know
>>>> how much help I can be, but lets try to work through your problem.
>>>>
>>>>
>>>>
>>>> Firstly, why is it that you're using a IUserType for your version? What
>>>> is the type that your version property has in your entity? I ask that
>>>> because Fluent NHibernate has a few options for mapping Versions and
>>>> Timestamps.
>>>>
>>>>    - If you call your property Timestamp and give it a type of TimeSpan,
>>>>    Fluent NHibernate will automatically map that to a Timestamp.
>>>>    - If you call your property Version, and give it a type of int or
>>>>    long, then it will map it as a Version.
>>>>
>>>>  Are any of those possible options for you?
>>>>
>>>>
>>>>
>>>> On Thu, Jan 8, 2009 at 3:40 PM, Luis Abreu <lab...@gmail.com> wrote:
>>>>
>>>>
>>>> Btw, one more stupid question. If I have this:
>>>>
>>>>
>>>> var modeloPersistencia =
>>>> AutoPersistenceModel.MapEntitiesFromAssemblyOf<Disciplina>()
>>>>                .Where(
>>>>                    type => type == typeof (Disciplina)
>>>>                ) //comecar com disciplina
>>>>                .WithConvention(convention =>
>>>>                                    {
>>>>                                        convention.DefaultLazyLoad =
>>>> false;
>>>>                                        convention.FindIdentity = field
>>>> =>
>>>> field.Name == "Id";
>>>>                                        convention.GetTableName = type =>
>>>> String.Concat(type.Name, "s");
>>>>                                        convention.GetVersionColumnName =
>>>> type =>  "Versao";
>>>>
>>>>  convention.GetPrimaryKeyNameFromType
>>>> = type => String.Concat("Id", type.Name);
>>>>                                        convention.IsBaseType = type =>
>>>> type
>>>> == typeof (EntidadeBase);
>>>>                                    });
>>>>
>>>> modeloPersistencia.WriteMappingsTo(@"d:\");
>>>>
>>>> Shouldn't I get the xml mapping file for class Disciplina on d:? I've
>>>> tried
>>>> and I get nothing there (interestingly, if I add the
>>>> modeloPersistencia.ForTypesThatDeriveFro<EntidadeBase> method call then
>>>> I do
>>>> get the xml for EntidadeBase only (which I don't want)...
>>>>
>>>> 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

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

Reply via email to