KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
my first time on the site so apologies if it's tagged incorrectly or been answered elsewhere... I keep running into particular situation on my current project and I was wondering how you guys would deal with it. The pattern is: a parent with a collection of children, and the parent has one or more references to particular items in the child collection, normally the 'default' child. A more concrete example: public class SystemMenu { public IList<MenuItem> Items { get; private set; } public MenuItem DefaultItem { get; set; } } public class MenuItem { public SystemMenu Parent { get; set; } public string Name { get; set; } } To me this seems like a good clean way of modelling the relationship, but causes problems immediately thanks to the circular association, I can't enforce the relationship in the DB because of the circular foreign keys, and LINQ to SQL blows up due to the cyclic association. Even if I could bodge my way round this, it's clearly not a great idea. My only idea currently is to have an 'IsDefault' flag on MenuItem: public class SystemMenu { public IList<MenuItem> Items { get; private set; } public MenuItem DefaultItem { get { return Items.Single(x => x.IsDefault); } set { DefaultItem.IsDefault = false; value.DefaultItem = true; } } } public class MenuItem { public SystemMenu Parent { get; set; } public string Name { get; set; } public bool IsDefault { get; set; } } Has anyone dealt with something similar and could offer some advice? Cheers! Edit: Thanks for the responses so far, perhaps the 'Menu' example wasn't brilliant though, I was trying to think of something representative so I didn't have to go into the specifics of our not-so-self-explanatory domain model! Perhaps a better example would b
Tags (comma-separated)
Save Edits
Cancel