Wait, wouldn't that cause "circular cascades"? (a problem I think I  
have but have yet to get the opportunity to fix...)

On Feb 12, 2009, at 12:47 PM, James Gregory <[email protected]>  
wrote:

> You mean an application wide Cascade.All for any relationship? No,  
> not currently. Good idea though.
>
> On Thu, Feb 12, 2009 at 4:56 PM, Ramana Kumar <[email protected] 
> > wrote:
> Thanks James.  Now with the cascade.All, the Saves are working fine.
>
> I guess there is no way to set up "cascade all" for all the Entities  
> that references another Entity.
> Ramana
>
> On Thu, Feb 12, 2009 at 3:01 AM, James Gregory <[email protected] 
> > wrote:
> Those wiki pages cover how you'd set the cascade.
>
> ForTypesThatDeriveFrom<Golfer>(m =>
> {
>   m.References(x => Address)
>     .Cascade.All();
> })
>
> On Thu, Feb 12, 2009 at 12:09 AM, Ramana Kumar <[email protected] 
> > wrote:
> I will go back home and check the wiki pages.  In the meantime, here  
> is what I use to save
>
>         [Transaction]
>         [AcceptVerbs(HttpVerbs.Post)]
>         public ActionResult Create(Golfer golfer) {
>             if (golfer.IsValid()) {
>                 golferRepository.SaveOrUpdate(golfer);
>                 TempData["message"] = "The golfer was successfully  
> created.";
>                 return RedirectToAction("Index");
>             }
>             else {
>                  
> MvcValidationAdapter. 
> TransferValidationMessagesTo(ViewData.ModelState,  
> golfer.ValidationResults());
>                 return View();
>             }
>         }
>
> When I put it the thru the debugger, I see that golfer instance has  
> correct values (from the form) for FirstName, LastName, Email as  
> well as Address.Addr1, Address.City etc populated correctly.
>
>  BTW, SaveOrUpdate if fine and when the "Create" method ends (i.e.  
> the transaction is complete) then I get the exception.  Obviously,  
> because the flush is thrwoing the exception.
>
> I still suspect that "cascade" on ManyToOne needs to set to "all", I  
> am not sure how to do it.
> Thanks
> Ramana
>
>
> On Wed, Feb 11, 2009 at 2:59 PM, James Gregory <[email protected] 
> > wrote:
> Can you show us the code that's actually saving the entities?
>
> These two wiki pages show the ways you can customise automappings:  
> altering entities and mapping overrides.
>
>
> On Wed, Feb 11, 2009 at 8:43 PM, Ramana Kumar <[email protected] 
> > wrote:
> No, I did mean Many to One :-)  The Domain Objects are Golfer and  
> Address and many Golfers can share the same Address.  Per James "i- 
> think-you-mean-a-many-to-one-sir" G, this should be mapped as Many  
> to one. I am just not sure how to do it thru AutoMap conventions.
> HTH
> Ramana
>
>
>  namespace GolfHandicapManager.Core
> {
>     public class Golfer : Entity
>     {
>         public Golfer() { }
>         [DomainSignature]
>         [NotNullNotEmpty]
>         public virtual string FirstName { get; set; }
>         [DomainSignature]
>         [NotNullNotEmpty]
>         public virtual string LastName { get; set; }
>         [NotNullNotEmpty]
>         public virtual string EmailAddress { get; set; }
>   public virtual string EmailAddress2 { get; set; }
>   public virtual string HomePhone { get; set; }
>   public virtual string CellPhone { get; set; }
>         public virtual Address Address { get; set; }
>     }
>     public class Address : Entity
>     {
>         public Address() { }
>         [DomainSignature]
>   public virtual string Addr1 { get; set; }
>   public virtual string Addr2 { get; set; }
>         [DomainSignature]
>   public virtual string City { get; set; }
>   public virtual string State { get; set; }
>   public virtual string Country { get; set; }
>   public virtual string ZipCode { get; set; }
>     }
> }
>
>
>
> On Wed, Feb 11, 2009 at 2:05 PM, Chris Marisic <[email protected]>  
> wrote:
>
> Do you mean One to Many?
>
> convention.OneToManyConvention = m =>
> {
>    m.Cascade.All();
> };
>
> On Feb 11, 1:58 pm, Ramana Kumar <[email protected]> wrote:
> > Hi
> > I am trying to use AutoMap to define behaviour for ManyToOne and I  
> get the
> > following exception
> >
> > object references an unsaved transient instance - save the transient
> > instance before flushing:
> >
> > The relevant code is
> >
> >  public class AutoPersistenceModelGenerator :  
> IAutoPersistenceModelGenerator
> >     {
> >         public AutoPersistenceModel Generate()
> >         {
> >             AutoPersistenceModel mappings = AutoPersistenceModel
> >                 .MapEntitiesFromAssemblyOf<Golfer>()
> >                 .Where(GetAutoMappingFilter)
> >                 .WithConvention(GetConventions);
> >             return mappings;
> >         }
> >
> >         private bool GetAutoMappingFilter(Type t)
> >         {
> >             return t.Namespace == "GolfHandicapManager.Core";
> >         }
> >         private void GetConventions(Conventions c)
> >         {
> >             c.GetPrimaryKeyNameFromType = type => "ROW_ID";  //DB  
> has ROW_ID
> > as Primary Key
> >             c.FindIdentity = type => type.Name == "ID"; // S#arp  
> currently
> > uses "ID"
> >             // Taken from Ayende Blog
> >             c.GetForeignKeyNameOfParent = (type => type.Name +  
> "_ID");
> >             c.GetTableName = type =>
> > Inflector.Net.Inflector.Pluralize(type.Name);
> >             c.IsBaseType = IsBaseTypeConvention;
> >             // Convert PropertyName to Underscore
> >             c.AddPropertyConvention(new
> > PascalToUnderscorePropertyConvention());
> >         }
> >
> > I am assuming I have to do a "cascade=all" somewhere in there but  
> do not
> > know how to do it thru a convention.
> >
> > Any pointers?
> > Thanks
> > Ramana
>
>
>
>
>
>
>
>
>
>
>
> >

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