Hello,

Let me start by asking the moderator to please look at my previous post 
sent around Friday (May 9), as it went into much greater detail as well as 
linked to a sample project but for some reason was not approved... Would be 
grateful if you could look at it again as I spend a good several minutes 
describing what I'm trying to accomplish as best I could.

Also wanted to add that this is a sister post to one on the developers 
group<https://groups.google.com/forum/#!topic/nhibernate-development/UTbygrpFz04>,
 
in which I tried to go into more technical aspects of this issue, but was 
still directed to this group :-)

Without further ado thou. What I have is frequently updated and delete-d 
entity that is just a view on a more complex business domain. Each entity 
in this "view" has a child collection of simple strings (think tags). 
Because of the DELETE FROM [TableName] we regularly execute, I'd like to 
mark the foreign key relationship as ON DELETE CASCADE. Right now I do so 
manually but only because I've found no way to coerce NHibernate into 
seeing the relationship the same way. Ultimately I'd like to find a way to 
do so as the whole database is frequently rebuilt from scratch by 
SchemaExport and doing manual updates to multiple foreign key relationships 
is time-consuming. Below is a simple class with its mapping demonstrating 
the use case:

public class Photo
{
public int Id { get; set; }
public string Name { get; set; }
public IList<string> Tags { get; set; }

public Photo()
{
Tags = new List<string>();
}
}

public class PhotoMap : ClassMapping<Photo>
{
public PhotoMap()
{
Lazy(false);
Id(p => p.Id);
Property(p => p.Name);
Bag(
p => p.Tags,
collectionMapping: collectionMapping =>
{
//collectionMapping.Inverse(true);
collectionMapping.Lazy(CollectionLazy.NoLazy);
collectionMapping.Cascade(Cascade.All | Cascade.DeleteOrphans);
},
mapping: mapping =>
{
//mapping.OneToMany(); // NH does not like this
mapping.Element(e => e.Column("tag_value"));
});
}
}

When I uncomment the mapping.OneToMany line NHibernate tells me that there 
is an unmapped entity System.String, so clearly I'm going against its way 
of thinking (and on the developers' group Ricardo confirmed that 
one-to-many is for entities only). Will be grateful for any advice on how I 
can make it work.

Best regards,
Dawid Ciecierski

Ps. I've prepared a sample project that does not make actual database calls 
which I can link to, but will refrain myself from doing so just in case 
linking outside of Google Groups automatically puts my post in the 
moderator's trash.

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to