Ah! You didn't mean to put this collection in NH Core? Sounds just fine.

Thought you meant to to put this collection in core. What I meant with the "PI" 
was persistance ignorance if this was a NH Core collection needed to be 
instantiated in domain on transient entities.


________________________________
Från: [email protected] [[email protected]] för Fabio Maulo 
[[email protected]]
Skickat: den 3 juni 2010 17:44
Till: [email protected]
Ämne: Re: [nhusers] Beginners question: How to add or delete related entity

To try to be a little more clear (and try to use this group even for ideas, not 
only for NH-Core)...
What is completely possible, without touch NH core, is:
To avoid the implementation of specific methods to Add/Remove children from a 
collection of Parent-Child relation we can provide "the final cut": strongly 
typed safe an encapsulated collection to manage Parent-Child relationship.
A little project with those classes with reference only to .NET.
Another project with IUserCollectionType to work with NH.

In this way the user can expose ICollection<TChild> instead IEnumerable<TChild>.

public Order()
{
     Items= new ParentChildBag<Order, OrderItem>(this);
}

public ICollection<OrderItem> Items {get; private set;}

In the other prj we will have PersistentParentChild<TParent, TChild> with the 
implementation for NH.

With XML mapping you know that the work is easy.
With FNH you can do the same as in XML or with a convetion.
With ConfORM I can implements a simple pattern.

Perhaps we can avoid a hundred of questions about Parent-Child relationship 
issues giving a cooked and strongly-typed/generic solution for new users ;)


On Thu, Jun 3, 2010 at 10:57 AM, Roger Kratz 
<[email protected]<mailto:[email protected]>> wrote:
Personally I don’t think so. What about PI for transient entities? I think this 
should be a domain concern.

Or am I missing how you think this should be solved on newly created entities?

/Roger

From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]<mailto:[email protected]>] On Behalf Of 
Fabio Maulo
Sent: den 3 juni 2010 14:19
To: [email protected]<mailto:[email protected]>
Subject: Re: [nhusers] Beginners question: How to add or delete related entity

Roger...
Perhaps we should implements a custom ParentChildSet and ParentChildBag 
somewhere ?
What do you think ?
On Thu, Jun 3, 2010 at 8:34 AM, Roger Kratz 
<[email protected]<mailto:[email protected]>> wrote:
Don't expose the mutable collection. Instead have something like...

department.AddUnit(new Unit());
department.RemoveUnit(someUnit);

...and handle the birefs inside these methods.

-----Original Message-----
From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]<mailto:[email protected]>] On Behalf Of 
Skiv
Sent: den 3 juni 2010 10:17
To: nhusers
Subject: [nhusers] Beginners question: How to add or delete related entity

For example, I have entity with one to many relation: Department has
many Units:

class Department
{
public decimal Id{get;set;}
public IList<Unit> Units{get;set;}
}

class Unit
{
public decimal Id{get;set;}
public Department {get;set;}//Parent
}

If I want add new Unit:
Unit newUnit =new Unit{Department=someDepartment};
session.Save(newUnit);

So, if I already have parent Department, it's Units collection isn't
updated automatically, I must add it manually:
someDepartment.Units.Add(newUnit);

Same is with entity deletion:
Unit deletedUnit = someDepartment.Units[0];
session.Delete(deletedUnit);
deletedUnit.Department.Units.Delete(deletedUnit);

Is this ok? Maybe there is more convenient way to do this?

--
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to 
[email protected]<mailto:[email protected]>.
To unsubscribe from this group, send email to 
[email protected]<mailto:nhusers%[email protected]>.
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.


--
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to 
[email protected]<mailto:[email protected]>.
To unsubscribe from this group, send email to 
[email protected]<mailto:nhusers%[email protected]>.
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.



--
Fabio Maulo
--
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to 
[email protected]<mailto:[email protected]>.
To unsubscribe from this group, send email to 
[email protected]<mailto:nhusers%[email protected]>.
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

--
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to 
[email protected]<mailto:[email protected]>.
To unsubscribe from this group, send email to 
[email protected]<mailto:nhusers%[email protected]>.
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.



--
Fabio Maulo


--
You received this message because you are subscribed to the Google Groups 
"nhusers" 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/nhusers?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" 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/nhusers?hl=en.

Reply via email to