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

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